diff --git a/pom.xml b/pom.xml
index 02eb8ea3d39b469a5e5155a30d697eb0fdb93f0f..f55fad85eb9f12edab90ec682e0f97d865fe2568 100755
--- a/pom.xml
+++ b/pom.xml
@@ -19,10 +19,6 @@
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
- <repository>
- <id>mvnrepository.com</id>
- <url>https://mvnrepository.com</url>
- </repository>
<repository>
<id>bedatadriven</id>
<name>bedatadriven public repo</name>
@@ -85,19 +81,19 @@
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
- <version>3.6.3.Final</version>
+ <version>3.15.3.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
- <version>3.6.3.Final</version>
+ <version>4.7.4.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
- <version>3.6.3.Final</version>
+ <version>4.7.4.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -119,13 +115,13 @@
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
- <version>0.9.9</version>
+ <version>0.10.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- <version>4.5</version>
+ <version>4.5.13</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
@@ -138,53 +134,47 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.5</version>
+ <version>2.6</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>de.micromata.jak</groupId>
<artifactId>JavaAPIforKml</artifactId>
- <version>2.2.0</version>
+ <version>2.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.postgis/postgis-jdbc -->
<dependency>
<groupId>net.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
- <version>2.2.2</version>
+ <version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
- <version>2.9.8</version>
+ <version>2.13.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
- <version>2.9.8</version>
+ <version>2.13.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
- <version>2.9.8</version>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.14</version>
- <type>jar</type>
+ <version>2.13.1</version>
</dependency>
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
- <version>1.1.0</version>
+ <version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
- <version>5.4.24.Final</version>
+ <version>5.6.3.Final</version>
<exclusions>
<exclusion>
<groupId>org.dom4j</groupId>
@@ -195,50 +185,50 @@
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
- <version>42.2.18</version>
+ <version>42.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
- <version>2.9.8</version>
+ <version>2.13.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
- <version>2.9.8</version>
+ <version>2.13.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
- <version>1.16.1</version>
+ <version>1.18.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.wololo</groupId>
<artifactId>jts2geojson</artifactId>
- <version>0.14.1</version>
+ <version>0.16.1</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
- <version>8.0</version>
+ <version>8.0.1</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
- <version>8.0</version>
+ <version>8.0.1</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
- <version>2.3.24-incubating</version>
+ <version>2.3.31</version>
</dependency>
<dependency>
<groupId>it.sauronsoftware.cron4j</groupId>
@@ -263,12 +253,12 @@
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
- <version>1.3.1</version>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
- <version>52.1</version>
+ <version>70.1</version>
</dependency>
<!--dependency>
@@ -280,17 +270,17 @@
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
- <version>0.9</version>
+ <version>0.16</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-api</artifactId>
- <version>20.3</version>
+ <version>20.5</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
- <version>20.3</version>
+ <version>20.5</version>
</dependency>
<dependency>
<groupId>com.webcohesion.enunciate</groupId>
@@ -315,16 +305,16 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.0.2</version>
+ <version>3.8.1</version>
<configuration>
- <source>10</source>
- <target>10</target>
+ <source>11</source>
+ <target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
- <version>2.0.2</version>
+ <version>3.3.2</version>
<configuration>
<webResources>
<resource>
@@ -349,7 +339,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.10</version>
+ <version>2.22.2</version>
<configuration>
<argLine>-Xmx6048m</argLine>
</configuration>
diff --git a/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java b/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java
index abfc6264317ca6c93772cdc9c1d0455b09f50526..76ad91784fece34063773465153c4e552cd931dd 100755
--- a/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java
+++ b/src/main/java/no/nibio/vips/logic/authenticate/AuthenticationFilter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 NIBIO <http://www.nibio.no/>.
+ * Copyright (c) 2022 NIBIO <http://www.nibio.no/>.
*
* This file is part of VIPSLogic.
* VIPSLogic is free software: you can redistribute it and/or modify
@@ -23,10 +23,12 @@ package no.nibio.vips.logic.authenticate;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.UUID;
+import javax.ejb.EJB;
import javax.servlet.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.util.Globals;
import no.nibio.vips.logic.util.SessionControllerGetter;
@@ -34,10 +36,13 @@ import no.nibio.vips.util.ServletUtil;
/**
* Ensures that user accessing a restricted resource is actually logged in. Redirects to login page if not
- * @copyright 2013 <a href="http://www.nibio.no">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class AuthenticationFilter implements Filter{
+
+ @EJB
+ UserBean userBean;
// The URLs that do not require login
private String[] unprivilegedURLs;
@@ -72,7 +77,7 @@ public class AuthenticationFilter implements Filter{
Cookie remembered = ServletUtil.getCookie(httpRequest, "rememberedUser");
if(remembered != null)
{
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(UUID.fromString(remembered.getValue()));
+ VipsLogicUser user = userBean.findVipsLogicUser(UUID.fromString(remembered.getValue()));
if(user != null)
{
httpRequest.getSession().setAttribute("user", user);
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java
index deeb40443f7383e1e6aa0804e1af4df15511ad18..3789c3cecc3f3b00a0b3f6e6868738178f73d0ed 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/CropCategoryController.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016 NIBIO <http://www.nibio.no/>.
+ * Copyright (c) 2022 NIBIO <http://www.nibio.no/>.
*
* This file is part of VIPSLogic.
* VIPSLogic is free software: you can redistribute it and/or modify
@@ -24,10 +24,13 @@ import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.OrganismBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.CropCategory;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.Organization;
@@ -41,11 +44,17 @@ import no.nibio.web.forms.FormValidationException;
import no.nibio.web.forms.FormValidator;
/**
- * @copyright 2016 <a href="http://www.bioforsk.no/">Bioforsk</a>
+ * @copyright 2016-2022 <a href="http://www.bioforsk.no/">Bioforsk</a>
* @author Tor-Einar Skog <tor-einar.skog@bioforsk.no>
*/
public class CropCategoryController extends HttpServlet {
+ @EJB
+ UserBean userBean;
+
+ @EJB
+ OrganismBean organismBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
@@ -63,19 +72,19 @@ public class CropCategoryController extends HttpServlet {
if(action == null)
{
Organization currentOrganization = user.isSuperUser() && request.getParameter("organizationId") != null ?
- SessionControllerGetter.getUserBean().getOrganization(Integer.valueOf(request.getParameter("organizationId")))
+ userBean.getOrganization(Integer.valueOf(request.getParameter("organizationId")))
: user.getOrganizationId();
if(user.isSuperUser())
{
- List<Organization> allOrganizations = SessionControllerGetter.getUserBean().getTopLevelOrganizations();
+ List<Organization> allOrganizations = userBean.getTopLevelOrganizations();
request.setAttribute("allOrganizations", allOrganizations);
}
- List<CropCategory> cropCategories = SessionControllerGetter.getOrganismBean().getCropCategories(currentOrganization.getOrganizationId());
+ List<CropCategory> cropCategories = organismBean.getCropCategories(currentOrganization.getOrganizationId());
request.setAttribute("organization", currentOrganization);
request.setAttribute("cropCategories", cropCategories);
- List<Organism> cropList = SessionControllerGetter.getOrganismBean().getAllCrops();
+ List<Organism> cropList = organismBean.getAllCrops();
Map<String, Organism> allCrops = new HashMap<>();
for(Organism crop:cropList)
{
@@ -94,9 +103,9 @@ public class CropCategoryController extends HttpServlet {
{
Integer cropCategoryId = formValidation.getFormField("cropCategoryId").getValueAsInteger();
List<Integer> cropCategoryCropOrganismIds = FormUtil.getIdsFromMultipleSelect(formValidation.getFormField("cropCategoryCropOrganismIds").getWebValues());
- CropCategory cropCategory = SessionControllerGetter.getOrganismBean().getCropCategory(cropCategoryId);
+ CropCategory cropCategory = organismBean.getCropCategory(cropCategoryId);
cropCategory.setCropOrganismIds(cropCategoryCropOrganismIds.toArray(new Integer[cropCategoryCropOrganismIds.size()]));
- SessionControllerGetter.getOrganismBean().storeCropCategory(cropCategory);
+ organismBean.storeCropCategory(cropCategory);
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://").append(ServletUtil.getServerName(request)).append("/organism/cropcategory?messageKey=cropCategoryUpdated").toString());
}
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java
index 92568c8866de3a3c9a483d2eea0fb1df3f009ffe..ddd0bf7896461a221d88e3aaf6f920d218528703 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/ForecastConfigurationController.java
@@ -29,6 +29,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.ServletException;
@@ -36,6 +37,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.ModelInformation;
@@ -62,6 +64,15 @@ public class ForecastConfigurationController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ ForecastBean forecastBean;
+
+ @EJB
+ UserBean userBean;
+
+ @EJB
+ OrganismBean organismBean;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
@@ -78,8 +89,6 @@ public class ForecastConfigurationController extends HttpServlet {
String action = request.getParameter("action");
VipsLogicUser user = (VipsLogicUser) request.getSession().getAttribute("user");
- ForecastBean forecastBean = SessionControllerGetter.getForecastBean();
- UserBean userBean = SessionControllerGetter.getUserBean();
// Default: View list of forecast configurations
// for SUPERUSERS and ORGANIZATION ADMINS
@@ -233,8 +242,8 @@ public class ForecastConfigurationController extends HttpServlet {
request.setAttribute("allCrops", em.createNamedQuery("Organism.findAllCrops").getResultList());
request.setAttribute("allPests", em.createNamedQuery("Organism.findAllPests").getResultList());
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
- request.setAttribute("modelInformations", SessionControllerGetter.getForecastBean().getBatchableModels());
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("modelInformations", forecastBean.getBatchableModels());
request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/forecastConfigurationForm.ftl").forward(request, response);
@@ -267,7 +276,7 @@ public class ForecastConfigurationController extends HttpServlet {
request.setAttribute("allCrops", em.createNamedQuery("Organism.findAllCrops").getResultList());
request.setAttribute("allPests", em.createNamedQuery("Organism.findAllPests").getResultList());
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("modelInformations", em.createNamedQuery("ModelInformation.findAll").getResultList());
request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/forecastConfigurationForm.ftl").forward(request, response);
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
index 8c169a334ec470129cd3655e3b3555279826dadb..ef89b33385608638c4100df90deef47ab99d77a3 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java
@@ -38,23 +38,24 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.Response;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.UserAuthenticationType;
import no.nibio.vips.logic.entity.UserUuid;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ServletUtil;
/**
* Logs a user in or out
- * @copyright 2013-2015 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class LoginController extends HttpServlet {
@@ -62,6 +63,9 @@ public class LoginController extends HttpServlet {
private static final String RETURN_UUID_PARAMETER_NAME = "returnUUID";
+ @EJB
+ UserBean userBean;
+
/**
* Processes requests for both HTTP
* <code>GET</code> and
@@ -116,7 +120,7 @@ public class LoginController extends HttpServlet {
Payload payload = idToken.getPayload();
// Try to find the user
- VipsLogicUser user = SessionControllerGetter.getUserBean().getUser(payload.getSubject(), UserAuthenticationType.TYPE_OPENID_GOOGLE);
+ VipsLogicUser user = userBean.getUser(payload.getSubject(), UserAuthenticationType.TYPE_OPENID_GOOGLE);
if(user != null)
{
request.getSession().setAttribute("user", user);
@@ -156,7 +160,7 @@ public class LoginController extends HttpServlet {
{
rememberedUser.setMaxAge(0);
response.addCookie(rememberedUser);
- SessionControllerGetter.getUserBean().deleteUserUuid(UUID.fromString(rememberedUser.getValue()));
+ userBean.deleteUserUuid(UUID.fromString(rememberedUser.getValue()));
}
request.setAttribute("messageKey","logoutsuccess");
request.getRequestDispatcher("/login.ftl").forward(request, response);
@@ -188,7 +192,7 @@ public class LoginController extends HttpServlet {
creds.put("username", username);
creds.put("password", password);
- VipsLogicUser user = SessionControllerGetter.getUserBean().authenticateUser(creds);
+ VipsLogicUser user = userBean.authenticateUser(creds);
if(user != null && user.getUserStatusId().equals(Globals.USER_STATUS_APPROVED))
{
@@ -277,7 +281,7 @@ public class LoginController extends HttpServlet {
creds.put("username", username);
creds.put("password", password);
- VipsLogicUser user = SessionControllerGetter.getUserBean().authenticateUser(creds);
+ VipsLogicUser user = userBean.authenticateUser(creds);
PrintWriter out = response.getWriter();
if(user != null && user.getUserStatusId().equals(Globals.USER_STATUS_APPROVED))
{
@@ -371,7 +375,7 @@ public class LoginController extends HttpServlet {
request.getSession().removeAttribute("rememberUser");
if(returnUUID || (rememberUser != null && rememberUser.equals("on")))
{
- UserUuid uUUID = SessionControllerGetter.getUserBean().createAndPersistUserUuid(user);
+ UserUuid uUUID = userBean.createAndPersistUserUuid(user);
if(rememberUser != null && rememberUser.equals("on"))
{
Cookie rememberedUser = new Cookie("rememberedUser", uUUID.getUserUuidPK().getUserUuid().toString());
@@ -388,7 +392,7 @@ public class LoginController extends HttpServlet {
{
rememberedUser.setMaxAge(0);
response.addCookie(rememberedUser);
- SessionControllerGetter.getUserBean().deleteUserUuid(UUID.fromString(rememberedUser.getValue()));
+ userBean.deleteUserUuid(UUID.fromString(rememberedUser.getValue()));
}
return null;
}
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java
index 2cbc6d43c5e0de93e693227603f30e61648db46f..b1987c845e02258db823c0eb4e8e14256706e3f5 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/MessageController.java
@@ -27,6 +27,7 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -35,12 +36,14 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import no.nibio.vips.i18n.LanguageUtil;
+import no.nibio.vips.logic.controller.session.MessageBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Message;
import no.nibio.vips.logic.entity.MessageLocale;
import no.nibio.vips.logic.entity.MessageTag;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
+import no.nibio.vips.logic.messaging.MessagingBean;
import no.nibio.vips.logic.util.Globals;
import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
@@ -56,7 +59,7 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
- * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2014-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class MessageController extends HttpServlet {
@@ -64,6 +67,15 @@ public class MessageController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ MessageBean messageBean;
+
+ @EJB
+ UserBean userBean;
+
+ @EJB
+ MessagingBean messagingBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
@@ -92,11 +104,11 @@ public class MessageController extends HttpServlet {
List<Message> messages;
if(user.isSuperUser())
{
- messages = SessionControllerGetter.getMessageBean().getFilteredMessages(null,null,datePubStart, datePubEnd);
+ messages = messageBean.getFilteredMessages(null,null,datePubStart, datePubEnd);
}
else
{
- messages = SessionControllerGetter.getMessageBean().getFilteredMessages(user.getOrganizationId().getOrganizationId(),null, datePubStart, datePubEnd);
+ messages = messageBean.getFilteredMessages(user.getOrganizationId().getOrganizationId(),null, datePubStart, datePubEnd);
}
request.setAttribute("messages", messages);
request.setAttribute("selectedMessageTags", em.createNamedQuery("MessageTag.findAll", MessageTag.class).getResultList());
@@ -115,8 +127,8 @@ public class MessageController extends HttpServlet {
// If no tags are selected, ALL tags are selected
List<Integer> selectedMessageTags = request.getParameterValues("filterMessageTags") != null ?
FormUtil.getIdsFromMultipleSelect(request.getParameterValues("filterMessageTags"))
- : SessionControllerGetter.getMessageBean().getAllMessageTagIds();
- Map<String, List<MessageTag>> messageTags = SessionControllerGetter.getMessageBean()
+ : messageBean.getAllMessageTagIds();
+ Map<String, List<MessageTag>> messageTags = messageBean
.getFilterMessageTags(selectedMessageTags);
request.setAttribute("selectedMessageTags", messageTags.get("selected"));
request.setAttribute("notSelectedMessageTags", messageTags.get("notSelected"));
@@ -140,11 +152,11 @@ public class MessageController extends HttpServlet {
List<Message> messages;
if(user.isSuperUser())
{
- messages = SessionControllerGetter.getMessageBean().getFilteredMessages(null,selectedMessageTags, datePubStart, datePubEnd);
+ messages = messageBean.getFilteredMessages(null,selectedMessageTags, datePubStart, datePubEnd);
}
else
{
- messages = SessionControllerGetter.getMessageBean().getFilteredMessages(user.getOrganizationId().getOrganizationId(),selectedMessageTags, datePubStart, datePubEnd);
+ messages = messageBean.getFilteredMessages(user.getOrganizationId().getOrganizationId(),selectedMessageTags, datePubStart, datePubEnd);
}
request.setAttribute("datePubStart", datePubStart);
request.setAttribute("datePubEnd", datePubEnd);
@@ -212,7 +224,7 @@ public class MessageController extends HttpServlet {
tags.removeAll(message.getMessageTagSet());
request.setAttribute("unusedTags", tags);
request.setAttribute("messageKey", request.getParameter("messageKey"));
- request.setAttribute("organizations", SessionControllerGetter.getUserBean().getOrganizations());
+ request.setAttribute("organizations", userBean.getOrganizations());
request.setAttribute("allCropCategoryIds", em.createNamedQuery("CropCategory.findByOrganizationId").setParameter("organizationId",user.getOrganizationId().getOrganizationId()).getResultList());
request.getRequestDispatcher("/messageForm.ftl").forward(request, response);
}
@@ -239,7 +251,7 @@ public class MessageController extends HttpServlet {
: SessionLocaleUtil.getCurrentLocale(request).getLanguage()
);
request.setAttribute("unusedTags", em.createNamedQuery("MessageTag.findAll").getResultList());
- request.setAttribute("organizations", SessionControllerGetter.getUserBean().getOrganizations());
+ request.setAttribute("organizations", userBean.getOrganizations());
request.setAttribute("allCropCategoryIds", em.createNamedQuery("CropCategory.findByOrganizationId").setParameter("organizationId",user.getOrganizationId().getOrganizationId()).getResultList());
request.getRequestDispatcher("/messageForm.ftl").forward(request, response);
}
@@ -287,19 +299,19 @@ public class MessageController extends HttpServlet {
if(formValidation.isValid())
{
// Store the message
- Message message = SessionControllerGetter.getMessageBean().storeMessage(formValidation.getFormFields(), user);
+ Message message = messageBean.storeMessage(formValidation.getFormFields(), user);
// New messages should be sent to subscribers
if(formValidation.getFormField("messageId").getValueAsInteger() < 0)
{
- SessionControllerGetter.getMessagingBean().sendUniversalMessage(message);
+ messagingBean.sendUniversalMessage(message);
}
// Delete the current illustration
String deleteIllustration = formValidation.getFormField("deleteIllustration").getWebValue();
if(deleteIllustration != null && deleteIllustration.equals("true"))
{
- message = SessionControllerGetter.getMessageBean().deleteMessageIllustration(message);
+ message = messageBean.deleteMessageIllustration(message);
}
// Store the new illustration (replaces former illustration if not already deleted)
if(items != null)
@@ -308,12 +320,12 @@ public class MessageController extends HttpServlet {
{
if(!item.isFormField() && item.getSize() > 0)
{
- message = SessionControllerGetter.getMessageBean().storeMessageIllustration(message, item);
+ message = messageBean.storeMessageIllustration(message, item);
}
}
}
// If an illustration is attached to the message, update the caption
- SessionControllerGetter.getMessageBean().updateMessageIllustrationCaption(message,
+ messageBean.updateMessageIllustrationCaption(message,
formValidation.getFormField("messageIllustrationCaptionLocale").getWebValue(),
formValidation.getFormField("locale").getWebValue()
);
@@ -369,7 +381,7 @@ public class MessageController extends HttpServlet {
try
{
Integer messageId = Integer.valueOf(request.getParameter("messageId"));
- SessionControllerGetter.getMessageBean().deleteMessage(messageId);
+ messageBean.deleteMessage(messageId);
// Redirect to list
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://")
.append(ServletUtil.getServerName(request))
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java
index fed4cf5e3d1b73db48bf8ae3ba2cf537457a1400..d0cd5c29532f496e217a588ab949a7f896fe7aaa 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/NotificationSubscriptionController.java
@@ -20,14 +20,16 @@ package no.nibio.vips.logic.controller.servlet;
import freemarker.core.ParseException;
import java.io.IOException;
-import java.util.Collections;
import java.util.List;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.OrganismBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.CropCategory;
import no.nibio.vips.logic.entity.VipsLogicRole;
@@ -35,14 +37,14 @@ import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
import no.nibio.vips.logic.messaging.ForecastEventNotificationSubscription;
import no.nibio.vips.logic.messaging.MessageNotificationSubscription;
+import no.nibio.vips.logic.messaging.MessagingBean;
import no.nibio.vips.logic.messaging.ObservationNotificationSubscription;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ServletUtil;
import no.nibio.web.forms.FormUtil;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@@ -52,6 +54,18 @@ public class NotificationSubscriptionController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ UserBean userBean;
+
+ @EJB
+ MessagingBean messagingBean;
+
+ @EJB
+ OrganismBean organismBean;
+
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
@@ -66,7 +80,6 @@ public class NotificationSubscriptionController extends HttpServlet {
String action = request.getParameter("action");
VipsLogicUser user = (VipsLogicUser) request.getSession().getAttribute("user");
- UserBean userBean = SessionControllerGetter.getUserBean();
try
{
@@ -94,22 +107,22 @@ public class NotificationSubscriptionController extends HttpServlet {
{
viewUser = em.find(VipsLogicUser.class, user.getUserId());
}
- ObservationNotificationSubscription observationNotificationSubscription = SessionControllerGetter.getMessagingBean().getObservationNotificationSubscription(viewUser.getUserId());
+ ObservationNotificationSubscription observationNotificationSubscription = messagingBean.getObservationNotificationSubscription(viewUser.getUserId());
request.setAttribute("observationNotificationSubscription", observationNotificationSubscription);
- MessageNotificationSubscription messageNotificationSubscription = SessionControllerGetter.getMessagingBean().getMessageNotificationSubscription(viewUser.getUserId());
+ MessageNotificationSubscription messageNotificationSubscription = messagingBean.getMessageNotificationSubscription(viewUser.getUserId());
request.setAttribute("messageNotificationSubscription",messageNotificationSubscription);
- ForecastEventNotificationSubscription forecastEventNotificationSubscription = SessionControllerGetter.getMessagingBean().getForecastEventNotificationSubscription(viewUser.getUserId());
+ ForecastEventNotificationSubscription forecastEventNotificationSubscription = messagingBean.getForecastEventNotificationSubscription(viewUser.getUserId());
request.setAttribute("forecastEventNotificationSubscription",forecastEventNotificationSubscription);
request.setAttribute("viewUser", viewUser);
- List<CropCategory> allCropCategories = SessionControllerGetter.getOrganismBean()
+ List<CropCategory> allCropCategories = organismBean
.sortCropCategoryByLocalName(
em.createNamedQuery("CropCategory.findByOrganizationId").setParameter("organizationId", viewUser.getOrganizationId().getOrganizationId()).getResultList(),
SessionLocaleUtil.getCurrentLocale(request).getLanguage()
);
request.setAttribute("allCropCategories", allCropCategories);
request.setAttribute("messageTagSet", em.createNamedQuery("MessageTag.findAll").getResultList());
- request.setAttribute("weatherStationIds", SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(viewUser.getOrganizationId(), true));
- request.setAttribute("universalMessageFormats", SessionControllerGetter.getMessagingBean().getAllUniversalMessageFormats());
+ request.setAttribute("weatherStationIds", pointOfInterestBean.getWeatherstationsForOrganization(viewUser.getOrganizationId(), true));
+ request.setAttribute("universalMessageFormats", messagingBean.getAllUniversalMessageFormats());
request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/notificationSubscriptionForm.ftl").forward(request, response);
}
@@ -130,20 +143,20 @@ public class NotificationSubscriptionController extends HttpServlet {
mSubscription.setCropCategoryIds(FormUtil.getIdsFromMultipleSelect(request.getParameterValues("messageN_cropCategoryIds")));
mSubscription.setMessageTagIds(FormUtil.getIdsFromMultipleSelect(request.getParameterValues("messageN_messageTagIds")));
mSubscription.setUserId(viewUser.getUserId());
- SessionControllerGetter.getMessagingBean().storeMessageNotificationSubscription(mSubscription);
+ messagingBean.storeMessageNotificationSubscription(mSubscription);
ForecastEventNotificationSubscription fSubscription = new ForecastEventNotificationSubscription();
fSubscription.setUniversalMessageFormatId(Integer.valueOf(request.getParameter("forecastN_universalMessageFormatId")));
fSubscription.setCropCategoryIds(FormUtil.getIdsFromMultipleSelect(request.getParameterValues("forecastN_cropCategoryIds")));
fSubscription.setWeatherStationIds(FormUtil.getIdsFromMultipleSelect(request.getParameterValues("forecastN_weatherStationIds")));
fSubscription.setUserId(viewUser.getUserId());
- SessionControllerGetter.getMessagingBean().storeForecastEventNotificationSubscription(fSubscription);
+ messagingBean.storeForecastEventNotificationSubscription(fSubscription);
ObservationNotificationSubscription oSubscription = new ObservationNotificationSubscription();
oSubscription.setUniversalMessageFormatId(Integer.valueOf(request.getParameter("observationN_universalMessageFormatId")));
oSubscription.setCropCategoryIds(FormUtil.getIdsFromMultipleSelect(request.getParameterValues("observationN_cropCategoryIds")));
oSubscription.setUserId(viewUser.getUserId());
- SessionControllerGetter.getMessagingBean().storeObservationNotificationSubscription(oSubscription);
+ messagingBean.storeObservationNotificationSubscription(oSubscription);
// Redirect to form with confirmation message
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://")
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
index 84fc06f83aeb5251fc18679a1c41eaf6b9649afc..c49849aa6a2051c61a14e20cadbea3c72f8366e8 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
@@ -33,6 +33,7 @@ import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.ServletContext;
@@ -40,6 +41,10 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Observation;
import no.nibio.vips.logic.entity.ObservationFormShortcut;
import no.nibio.vips.logic.entity.ObservationMethod;
@@ -50,6 +55,7 @@ import no.nibio.vips.logic.entity.PolygonService;
import no.nibio.vips.logic.entity.VipsLogicRole;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
+import no.nibio.vips.logic.messaging.MessagingBean;
import no.nibio.vips.logic.util.Globals;
import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
@@ -67,12 +73,24 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
- * @copyright 2014-2017 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2014-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class ObservationController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ UserBean userBean;
+ @EJB
+ ObservationBean observationBean;
+ @EJB
+ MessagingBean messagingBean;
+ @EJB
+ OrganismBean organismBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
@@ -89,15 +107,15 @@ public class ObservationController extends HttpServlet {
List<OrganizationGroup> organizationGroups = null;
if(user.isSuperUser())
{
- organizationGroups = SessionControllerGetter.getUserBean().getOrganizationGroups();
+ organizationGroups = userBean.getOrganizationGroups();
}
else if(user.isOrganizationAdmin())
{
- organizationGroups = SessionControllerGetter.getUserBean().getOrganizationGroups(user.getOrganizationId());
+ organizationGroups = userBean.getOrganizationGroups(user.getOrganizationId());
}
else
{
- organizationGroups = SessionControllerGetter.getUserBean().getOrganizationGroups(user);
+ organizationGroups = userBean.getOrganizationGroups(user);
}
// Default: View observation list
// for everyone
@@ -179,16 +197,16 @@ public class ObservationController extends HttpServlet {
}
// First: Get observations for organization or user
- if(viewOthersObservations && SessionControllerGetter.getUserBean().authorizeUser(user,
+ if(viewOthersObservations && userBean.authorizeUser(user,
VipsLogicRole.OBSERVATION_AUTHORITY,
VipsLogicRole.ORGANIZATION_ADMINISTRATOR,
VipsLogicRole.SUPERUSER))
{
- observations = SessionControllerGetter.getObservationBean().getObservations(user.getOrganizationId().getOrganizationId(), timeOfObservationFrom, timeOfObservationTo);
+ observations = observationBean.getObservations(user.getOrganizationId().getOrganizationId(), timeOfObservationFrom, timeOfObservationTo);
}
else
{
- observations = SessionControllerGetter.getObservationBean().getObservationsForUser(user, timeOfObservationFrom, timeOfObservationTo);
+ observations = observationBean.getObservationsForUser(user, timeOfObservationFrom, timeOfObservationTo);
}
// Then: Filter on other criteria
@@ -218,7 +236,7 @@ public class ObservationController extends HttpServlet {
final Set<Integer> ogi = organizationGroupId;
observations = observations.stream()
.filter((Observation obs) -> {
- List<Integer> availableOrganizationGroupIds = SessionControllerGetter.getObservationBean().getOrganizationGroupIds(obs);
+ List<Integer> availableOrganizationGroupIds = observationBean.getOrganizationGroupIds(obs);
if(availableOrganizationGroupIds != null && ! availableOrganizationGroupIds.isEmpty())
{
if (availableOrganizationGroupIds.stream().anyMatch((gId) -> (ogi.contains(gId)))) {
@@ -231,15 +249,15 @@ public class ObservationController extends HttpServlet {
}
// Check for form shortcuts
- List<ObservationFormShortcut> shortcuts = SessionControllerGetter.getObservationBean().getObservationFormShortcuts(user.getOrganizationId());
+ List<ObservationFormShortcut> shortcuts = observationBean.getObservationFormShortcuts(user.getOrganizationId());
Collections.sort(observations);
Collections.reverse(observations);
//observations.forEach(o->System.out.println(o));
List<Organism> allPests = em.createNamedQuery("Organism.findAllPests").getResultList();
request.setAttribute("shortcuts", shortcuts);
- request.setAttribute("allPests", SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(allPests, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("allPests", organismBean.sortOrganismsByLocalName(allPests, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("timeOfObservationFrom", userDefinedFrom ? timeOfObservationFrom : null);
request.setAttribute("timeOfObservationTo", userDefinedTo ? timeOfObservationTo : null);
request.setAttribute("selectedPestOrganismId", pestOrganismId);
@@ -248,8 +266,8 @@ public class ObservationController extends HttpServlet {
request.setAttribute("organizationGroups", organizationGroups);
request.setAttribute("organizationGroupId", organizationGroupId);
request.setAttribute("observations", observations);
- request.setAttribute("userHasObserverPrivilege", SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER));
- request.setAttribute("userIsObservationAuthority", SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER));
+ request.setAttribute("userHasObserverPrivilege", userBean.authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER));
+ request.setAttribute("userIsObservationAuthority", userBean.authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER));
// If this is a redirect from a controller, with a message to be passed on
request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/observationList.ftl").forward(request, response);
@@ -258,7 +276,7 @@ public class ObservationController extends HttpServlet {
// Authorization: ORGANIZATION ADMIN, OBSERVER or SUPERUSER
else if(action.equals("newObservationForm"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
@@ -276,7 +294,7 @@ public class ObservationController extends HttpServlet {
Integer organismId = Integer.valueOf(request.getParameter("organismId"));
observation.setOrganism(em.find(Organism.class, organismId));
// If pest has been selected, include only associated crops
- allCrops = SessionControllerGetter.getOrganismBean().getPestCrops(organismId);
+ allCrops = organismBean.getPestCrops(organismId);
}
else
{
@@ -284,7 +302,7 @@ public class ObservationController extends HttpServlet {
}
// Get the polygonServices
- List<PolygonService> polygonServices = SessionControllerGetter.getObservationBean().getPolygonServicesForOrganization(user.getOrganization_id());
+ List<PolygonService> polygonServices = observationBean.getPolygonServicesForOrganization(user.getOrganization_id());
request.setAttribute("observation", observation);
request.setAttribute("polygonServices", polygonServices);
@@ -295,20 +313,20 @@ public class ObservationController extends HttpServlet {
);
request.setAttribute("hideObservationFormMap", request.getParameter("hideObservationFormMap") != null ? request.getParameter("hideObservationFormMap").equals("true") : false);
request.setAttribute("noBroadcast", request.getParameter("noBroadcast") != null);
- request.setAttribute("mapLayers", SessionControllerGetter.getUserBean().getMapLayerJSONForUser(user));
+ request.setAttribute("mapLayers", userBean.getMapLayerJSONForUser(user));
request.setAttribute("defaultMapCenter",user.getOrganizationId().getDefaultMapCenter());
request.setAttribute("defaultMapZoom", user.getOrganizationId().getDefaultMapZoom());
- request.setAttribute("locationPointOfInterests", SessionControllerGetter.getPointOfInterestBean().getRelevantPointOfInterestsForUser(user));
+ request.setAttribute("locationPointOfInterests", pointOfInterestBean.getRelevantPointOfInterestsForUser(user));
List<Organism> allPests = em.createNamedQuery("Organism.findAllPests").getResultList();
- request.setAttribute("allPests", SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(allPests, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
- request.setAttribute("allCrops", SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(allCrops, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
+ request.setAttribute("allPests", organismBean.sortOrganismsByLocalName(allPests, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
+ request.setAttribute("allCrops", organismBean.sortOrganismsByLocalName(allCrops, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
request.setAttribute("selectedOrganizationGroupIds", new ArrayList<>());
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("observationMethods", em.createNamedQuery("ObservationMethod.findAll", ObservationMethod.class).getResultList());
request.setAttribute("organizationGroups", organizationGroups);
request.setAttribute("editAccess", "W"); // User always has edit access to new observation
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
request.setAttribute("statusTypeIds", em.createNamedQuery("ObservationStatusType.findAll").getResultList());
}
@@ -328,31 +346,31 @@ public class ObservationController extends HttpServlet {
// Authorization: ORGANIZATION ADMIN, OBSERVER or SUPERUSER
else if(action.equals("editObservationForm"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
Integer observationId = Integer.valueOf(request.getParameter("observationId"));
- Observation observation = SessionControllerGetter.getObservationBean().getObservation(observationId);//em.find(Observation.class, observationId);
- List<PolygonService> polygonServices = SessionControllerGetter.getObservationBean().getPolygonServicesForOrganization(user.getOrganization_id());
+ Observation observation = observationBean.getObservation(observationId);//em.find(Observation.class, observationId);
+ List<PolygonService> polygonServices = observationBean.getPolygonServicesForOrganization(user.getOrganization_id());
request.setAttribute("locationVisibilityFormValue", this.getLocationVisibilityFormValue(observation));
request.setAttribute("observation", observation);
request.setAttribute("polygonServices", polygonServices);
request.setAttribute("noBroadcast", request.getParameter("noBroadcast") != null);
- request.setAttribute("mapLayers", SessionControllerGetter.getUserBean().getMapLayerJSONForUser(user));
+ request.setAttribute("mapLayers", userBean.getMapLayerJSONForUser(user));
//System.out.println(observation.getGeoinfo());
request.setAttribute("defaultMapCenter",user.getOrganizationId().getDefaultMapCenter());
request.setAttribute("defaultMapZoom", user.getOrganizationId().getDefaultMapZoom());
List<Organism> allPests = em.createNamedQuery("Organism.findAllPests").getResultList();
- request.setAttribute("allPests", SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(allPests, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
+ request.setAttribute("allPests", organismBean.sortOrganismsByLocalName(allPests, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
List<Organism> allCrops = em.createNamedQuery("Organism.findAllCrops").getResultList();
- request.setAttribute("allCrops", SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(allCrops, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
- request.setAttribute("selectedOrganizationGroupIds", SessionControllerGetter.getObservationBean().getOrganizationGroupIds(observation));
+ request.setAttribute("allCrops", organismBean.sortOrganismsByLocalName(allCrops, SessionLocaleUtil.getCurrentLocale(request).getLanguage()));
+ request.setAttribute("selectedOrganizationGroupIds", observationBean.getOrganizationGroupIds(observation));
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("observationMethods", em.createNamedQuery("ObservationMethod.findAll", ObservationMethod.class).getResultList());
request.setAttribute("organizationGroups", organizationGroups);
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
request.setAttribute("statusTypeIds", em.createNamedQuery("ObservationStatusType.findAll").getResultList());
}
@@ -388,7 +406,7 @@ public class ObservationController extends HttpServlet {
// Authorization: ORGANIZATION ADMIN, OBSERVER or SUPERUSER
else if(action.equals("observationFormSubmit"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
@@ -456,7 +474,7 @@ public class ObservationController extends HttpServlet {
boolean sendNotification = false;
// Storing approval status
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVATION_AUTHORITY, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
Integer statusTypeId = formValidation.getFormField("statusTypeId").getValueAsInteger();
if(
@@ -494,14 +512,14 @@ public class ObservationController extends HttpServlet {
observation.setGeoinfo(formValidation.getFormField("geoInfo").getWebValue());
}
- observation = SessionControllerGetter.getObservationBean().storeObservation(observation);
+ observation = observationBean.storeObservation(observation);
// Image handling
// Delete the current illustration
String deleteIllustration = formValidation.getFormField("deleteIllustration").getWebValue();
if(deleteIllustration != null && deleteIllustration.equals("true"))
{
- observation = SessionControllerGetter.getObservationBean().deleteObservationIllustration(observation);
+ observation = observationBean.deleteObservationIllustration(observation);
}
// Store the new illustration (replaces former illustration if not already deleted)
@@ -511,13 +529,13 @@ public class ObservationController extends HttpServlet {
{
if(!item.isFormField() && item.getSize() > 0)
{
- observation = SessionControllerGetter.getObservationBean().storeObservationIllustration(observation, item);
+ observation = observationBean.storeObservationIllustration(observation, item);
}
}
}
// Checking for organization groups
- SessionControllerGetter.getObservationBean().storeOrganizationGroupObservationIds(observation, formValidation.getFormField("organizationGroupId").getWebValues());
+ observationBean.storeOrganizationGroupObservationIds(observation, formValidation.getFormField("organizationGroupId").getWebValues());
// All transactions finished, we can send notifications
// if conditions are met
@@ -525,7 +543,7 @@ public class ObservationController extends HttpServlet {
(System.getProperty("DISABLE_MESSAGING_SYSTEM") != null && System.getProperty("DISABLE_MESSAGING_SYSTEM").equals("true"))
)
{
- SessionControllerGetter.getMessagingBean().sendUniversalMessage(observation);
+ messagingBean.sendUniversalMessage(observation);
}
// Redirect to form
@@ -544,7 +562,7 @@ public class ObservationController extends HttpServlet {
List<Organism> allOrganisms = em.createNamedQuery("Organism.findAll").getResultList();
request.setAttribute("allOrganisms", allOrganisms);
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("observationMethods", em.createNamedQuery("ObservationMethod.findAll", ObservationMethod.class).getResultList());
request.getRequestDispatcher("/observationForm.ftl").forward(request, response);
}
@@ -568,12 +586,12 @@ public class ObservationController extends HttpServlet {
// Authorization: ORGANIZATION ADMIN, OBSERVER or SUPERUSER
else if(action.equals("deleteObservation"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.OBSERVER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
Integer observationId = Integer.valueOf(request.getParameter("observationId"));
- SessionControllerGetter.getObservationBean().deleteObservation(observationId);
+ observationBean.deleteObservation(observationId);
// Redirect to list
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://")
@@ -596,7 +614,7 @@ public class ObservationController extends HttpServlet {
else if(request.getServletPath().endsWith("/map"))
{
// Only for superusers, organizationadmins and observation authorities
- if(SessionControllerGetter.getUserBean().authorizeUser(user,
+ if(userBean.authorizeUser(user,
VipsLogicRole.SUPERUSER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.OBSERVATION_AUTHORITY)
)
{
@@ -609,7 +627,7 @@ public class ObservationController extends HttpServlet {
formValidation.getFormField("organizationId").getValueAsInteger()
:user.getOrganizationId().getOrganizationId();
organization = em.find(Organization.class, organizationId);
- request.setAttribute("organizations", SessionControllerGetter.getUserBean().getOrganizations());
+ request.setAttribute("organizations", userBean.getOrganizations());
request.setAttribute("organizationId", organizationId);
}
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java
index 6f887f7b8e790ace23664afd2d173c30c0c8f85f..4fe1f614cbe676b64cde796709a16c2b94eafc11 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganismController.java
@@ -20,17 +20,18 @@
package no.nibio.vips.logic.controller.servlet;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.OrganismBean;
import no.nibio.vips.logic.entity.CropPest;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.OrganismExternalResource;
@@ -38,7 +39,6 @@ import no.nibio.vips.logic.entity.OrganismExternalResourcePK;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ExceptionUtil;
import no.nibio.vips.util.ServletUtil;
import no.nibio.web.forms.FormField;
@@ -48,13 +48,16 @@ import no.nibio.web.forms.FormValidationException;
import no.nibio.web.forms.FormValidator;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class OrganismController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ OrganismBean organismBean;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
@@ -80,12 +83,12 @@ public class OrganismController extends HttpServlet {
)
{
organism = new Organism();
- organism.setChildOrganisms(SessionControllerGetter.getOrganismBean().getTopLevelOrganisms());
+ organism.setChildOrganisms(organismBean.getTopLevelOrganisms());
}
else
{
Integer organismId = Integer.valueOf(request.getParameter("organismId"));
- organism = SessionControllerGetter.getOrganismBean().getOrganismAndChildrenTwoLevels(organismId);
+ organism = organismBean.getOrganismAndChildrenTwoLevels(organismId);
}
request.setAttribute("organism", organism);
// Check if any of the child organisms has trade name
@@ -119,27 +122,27 @@ public class OrganismController extends HttpServlet {
{
List<Organism> allCrops = em.createNamedQuery("Organism.findAllCrops").getResultList();
- Map<String,Organism> allPestsMapped = SessionControllerGetter.getOrganismBean().getAllPestsMapped();
- Map<String, CropPest> cropPestsMap = SessionControllerGetter.getOrganismBean().getCropPestsMapped();
+ Map<String,Organism> allPestsMapped = organismBean.getAllPestsMapped();
+ Map<String, CropPest> cropPestsMap = organismBean.getCropPestsMapped();
request.setAttribute("allCrops",
- SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(
+ organismBean.sortOrganismsByLocalName(
allCrops,
SessionLocaleUtil.getCurrentLocale(request).getLanguage())
);
request.setAttribute("allPestsMapped", allPestsMapped);
request.setAttribute("cropPestsMap", cropPestsMap);
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.getRequestDispatcher("/cropList.ftl").forward(request, response);
}
else if(action.equals("listPests"))
{
List<Organism> allPests = em.createNamedQuery("Organism.findAllPests").getResultList();
request.setAttribute("allPests",
- SessionControllerGetter.getOrganismBean().sortOrganismsByLocalName(
+ organismBean.sortOrganismsByLocalName(
allPests,
SessionLocaleUtil.getCurrentLocale(request).getLanguage())
);
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.getRequestDispatcher("/pestList.ftl").forward(request, response);
}
else if(action.equals("viewOrganism"))
@@ -151,7 +154,7 @@ public class OrganismController extends HttpServlet {
request.setAttribute("organism", organism);
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("parentOrganism", organism.getParentOrganismId() != null ? em.find(Organism.class, organism.getParentOrganismId()) : null);
request.getRequestDispatcher("/organismDetails.ftl").forward(request, response);
}
@@ -177,15 +180,15 @@ public class OrganismController extends HttpServlet {
request.setAttribute("organism", organism);
if(organism.getIsCrop())
{
- request.setAttribute("cropCategories", SessionControllerGetter.getOrganismBean().getCropCategories(user.getOrganizationId().getOrganizationId()));
+ request.setAttribute("cropCategories", organismBean.getCropCategories(user.getOrganizationId().getOrganizationId()));
}
// All organisms used for parent organism list
List<Organism> allOrganisms = em.createNamedQuery("Organism.findAll").getResultList();
request.setAttribute("allOrganisms", allOrganisms);
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getOrganismBean().getUnusedExternalResourcesForOrganism(organism));
+ request.setAttribute("unreferencedExternalResources", organismBean.getUnusedExternalResourcesForOrganism(organism));
request.getRequestDispatcher("/organismForm.ftl").forward(request, response);
}
catch(NullPointerException | NumberFormatException ex)
@@ -207,10 +210,10 @@ public class OrganismController extends HttpServlet {
request.setAttribute("organism", organism);
request.setAttribute("allOrganisms", em.createNamedQuery("Organism.findAll").getResultList());
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getOrganismBean().getUnusedExternalResourcesForOrganism(organism));
+ request.setAttribute("unreferencedExternalResources", organismBean.getUnusedExternalResourcesForOrganism(organism));
request.getRequestDispatcher("/organismForm.ftl").forward(request, response);
}
@@ -235,7 +238,7 @@ public class OrganismController extends HttpServlet {
organism.setHierarchyCategoryId(formValidation.getFormField("hierarchyCategoryId").getValueAsInteger());
organism.setParentOrganismId(formValidation.getFormField("parentOrganismId").getValueAsInteger());
- organism = SessionControllerGetter.getOrganismBean().storeOrganismWithLocalName(
+ organism = organismBean.storeOrganismWithLocalName(
organism,
formValidation.getFormField("localName").getWebValue(),
SessionLocaleUtil.getCurrentLocale(request)
@@ -250,7 +253,7 @@ public class OrganismController extends HttpServlet {
cropCategoryIds.add(Integer.valueOf(idStr));
}
}
- SessionControllerGetter.getOrganismBean().storeOrganismCropCategories(user.getOrganizationId().getOrganizationId(), organism, cropCategoryIds);
+ organismBean.storeOrganismCropCategories(user.getOrganizationId().getOrganizationId(), organism, cropCategoryIds);
//System.out.println(formValidation.getFormFields().toString());
if(formValidation.getMultipleMapFormFields().get("externalResourceIdentifier") != null)
@@ -268,7 +271,7 @@ public class OrganismController extends HttpServlet {
OrganismExternalResourcePK pk = new OrganismExternalResourcePK(organism.getOrganismId(), externalResourceId);
organismExternalResource.setOrganismExternalResourcePK(pk);
organismExternalResource.setResourceIdentifier(identifierField.getWebValue());
- SessionControllerGetter.getOrganismBean().storeOrganismExternalResource(organismExternalResource);
+ organismBean.storeOrganismExternalResource(organismExternalResource);
}
}
// Need to refresh organism after storing the external resources
@@ -276,13 +279,13 @@ public class OrganismController extends HttpServlet {
request.setAttribute("organism", refreshedOrganism);
if(refreshedOrganism.getIsCrop())
{
- request.setAttribute("cropCategories", SessionControllerGetter.getOrganismBean().getCropCategories(user.getOrganizationId().getOrganizationId()));
+ request.setAttribute("cropCategories", organismBean.getCropCategories(user.getOrganizationId().getOrganizationId()));
}
request.setAttribute("allOrganisms", em.createNamedQuery("Organism.findAll").getResultList());
// Hierarchy categories
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getOrganismBean().getUnusedExternalResourcesForOrganism(refreshedOrganism));
+ request.setAttribute("unreferencedExternalResources", organismBean.getUnusedExternalResourcesForOrganism(refreshedOrganism));
request.setAttribute("messageKey", organismId > 0 ? "organismUpdated" : "organismRegistered");
request.getRequestDispatcher("/organismForm.ftl").forward(request, response);
}
@@ -291,7 +294,7 @@ public class OrganismController extends HttpServlet {
request.setAttribute("formValidation", formValidation);
request.setAttribute("organism", organism);
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getOrganismBean().getUnusedExternalResourcesForOrganism(organism));
+ request.setAttribute("unreferencedExternalResources", organismBean.getUnusedExternalResourcesForOrganism(organism));
request.getRequestDispatcher("/organismForm.ftl").forward(request, response);
}
}
@@ -319,7 +322,7 @@ public class OrganismController extends HttpServlet {
Integer organismId = Integer.valueOf(request.getParameter("organismId"));
Organism organism = em.find(Organism.class, organismId);
String parentOrganismId = organism.getParentOrganismId() != null ? String.valueOf(organism.getParentOrganismId()) : "null";
- if(SessionControllerGetter.getOrganismBean().deleteOrganism(organismId))
+ if(organismBean.deleteOrganism(organismId))
{
// Route back to where we were with confirmation message
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://").append(ServletUtil.getServerName(request)).append("/organism?action=listChildOrganisms&organismId=").append(parentOrganismId).append("&messageKey=organismDeleted").toString());
@@ -358,10 +361,10 @@ public class OrganismController extends HttpServlet {
if(cropOrganismId != null && cropOrganismId > 0)
{
request.setAttribute("cropOrganismId", cropOrganismId);
- CropPest cropPest = SessionControllerGetter.getOrganismBean().getCropPest(cropOrganismId);
+ CropPest cropPest = organismBean.getCropPest(cropOrganismId);
request.setAttribute("cropPest", cropPest);
}
- request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
+ request.setAttribute("hierarchyCategories", organismBean.getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request)));
request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/cropPestForm.ftl").forward(request, response);
}
@@ -387,7 +390,7 @@ public class OrganismController extends HttpServlet {
cropPest.setIncludeAllChildCrops(includeAllChildCrops);
cropPest.setPestOrganismIds(pestOrganismIds);
- SessionControllerGetter.getOrganismBean().storeCropPest(cropPest);
+ organismBean.storeCropPest(cropPest);
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://").append(ServletUtil.getServerName(request)).append("/organism?action=editCropPest&cropOrganismId=").append(cropOrganismId).append("&messageKey=cropPestUpdated").toString());
}
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
index 68f30fcbefa199f806de82884ecc2dadf561afaa..d139855447a5e7fb2de7c8d0105ae684ca0d28be 100644
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationController.java
@@ -23,26 +23,30 @@ import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.TimeZone;
+import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import no.nibio.vips.gis.GISUtil;
import no.nibio.vips.gis.LonLatStringFormatException;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ServletUtil;
import no.nibio.web.forms.FormValidation;
import no.nibio.web.forms.FormValidationException;
import no.nibio.web.forms.FormValidator;
/**
- * @copyright 2019 <a href="http://www.bioforsk.no/">Bioforsk</a>
- * @author Tor-Einar Skog <tor-einar.skog@bioforsk.no>
+ * @copyright 2019-2022 <a href="http://www.nibio.no/">NIBIO</a>
+ * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class OrganizationController extends HttpServlet {
+
+ @EJB
+ UserBean userBean;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
@@ -66,7 +70,7 @@ public class OrganizationController extends HttpServlet {
// the user is a member
if(action == null && user.isSuperUser())
{
- List<Organization> organizations = SessionControllerGetter.getUserBean().getTopLevelOrganizations();
+ List<Organization> organizations = userBean.getTopLevelOrganizations();
request.setAttribute("organizations", organizations);
request.getRequestDispatcher("/organizationList.ftl").forward(request, response);
}
@@ -76,8 +80,8 @@ public class OrganizationController extends HttpServlet {
List<VipsLogicUser> organizationUsers;
try
{
- organization = SessionControllerGetter.getUserBean().getOrganization(Integer.valueOf(request.getParameter("organizationId")));
- organizationUsers = SessionControllerGetter.getUserBean().getUsersByOrganization(organization.getOrganizationId());
+ organization = userBean.getOrganization(Integer.valueOf(request.getParameter("organizationId")));
+ organizationUsers = userBean.getUsersByOrganization(organization.getOrganizationId());
Collections.sort(organizationUsers);
}
catch(NumberFormatException ex)
@@ -95,7 +99,7 @@ public class OrganizationController extends HttpServlet {
request.setAttribute("messageKey", request.getParameter("messageKey") != null ? request.getParameter("messageKey") : null);
request.setAttribute("organizationUsers", organizationUsers);
- request.setAttribute("countries", SessionControllerGetter.getUserBean().getCountries());
+ request.setAttribute("countries", userBean.getCountries());
request.setAttribute("timeZones", TimeZone.getAvailableIDs());
request.setAttribute("organization", organization);
request.getRequestDispatcher("/organizationForm.ftl").forward(request, response);
@@ -106,7 +110,7 @@ public class OrganizationController extends HttpServlet {
{
Integer organizationId = Integer.valueOf(request.getParameter("organizationId"));
Organization organization = organizationId > 0 ?
- SessionControllerGetter.getUserBean().getOrganization(organizationId)
+ userBean.getOrganization(organizationId)
: new Organization();
FormValidation formValidation = FormValidator.validateForm("organizationForm", request, getServletContext());
@@ -116,13 +120,13 @@ public class OrganizationController extends HttpServlet {
organization.setAddress1(formValidation.getFormField("address1").getWebValue());
organization.setAddress2(formValidation.getFormField("address2").getWebValue());
organization.setPostalCode(formValidation.getFormField("postalCode").getWebValue());
- organization.setCountryCode(SessionControllerGetter.getUserBean().getCountry(formValidation.getFormField("countryCode").getWebValue()));
+ organization.setCountryCode(userBean.getCountry(formValidation.getFormField("countryCode").getWebValue()));
organization.setCity(formValidation.getFormField("city").getWebValue());
organization.setDefaultLocale(formValidation.getFormField("defaultLocale").getWebValue());
organization.setDefaultTimeZone(formValidation.getFormField("defaultTimeZone").getWebValue());
organization.setVipswebUrl(formValidation.getFormField("vipswebUrl").getWebValue());
Integer archiveUserId = formValidation.getFormField("archiveUserId").getValueAsInteger();
- organization.setArchiveUser(archiveUserId > 0 ? SessionControllerGetter.getUserBean().getVipsLogicUser(archiveUserId) : null);
+ organization.setArchiveUser(archiveUserId > 0 ? userBean.getVipsLogicUser(archiveUserId) : null);
organization.setDefaultVipsCoreUserId(
formValidation.getFormField("defaultVipsCoreUserId").isEmpty() ?
null
@@ -139,7 +143,7 @@ public class OrganizationController extends HttpServlet {
: new GISUtil().getJtsPointFromString(formValidation.getFormField("defaultMapCenter").getWebValue())
);
- organization = SessionControllerGetter.getUserBean().storeOrganization(organization);
+ organization = userBean.storeOrganization(organization);
response.sendRedirect(
Globals.PROTOCOL + "://" + ServletUtil.getServerName(request)
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java
index 3609acda8d9b3cb691e099adbfbb99668f9af1f4..cbca3e4299f56ef1b857f36f2ec646a952744919 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/OrganizationGroupController.java
@@ -20,26 +20,31 @@ package no.nibio.vips.logic.controller.servlet;
import java.io.IOException;
import java.util.List;
+import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.OrganizationGroup;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ServletUtil;
import no.nibio.web.forms.FormValidation;
import no.nibio.web.forms.FormValidationException;
import no.nibio.web.forms.FormValidator;
/**
- *
- * @author treinar
+ * @copyright 2022 <a href="http://www.nibio.no/">NIBIO</a>
+ * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class OrganizationGroupController extends HttpServlet {
+
+ @EJB
+ UserBean userBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
@@ -64,13 +69,13 @@ public class OrganizationGroupController extends HttpServlet {
Organization organization = user.getOrganizationId();
if(user.isSuperUser() && request.getParameter("organizationId") != null)
{
- organization = SessionControllerGetter.getUserBean().getOrganization(Integer.valueOf(request.getParameter("organizationId")));
+ organization = userBean.getOrganization(Integer.valueOf(request.getParameter("organizationId")));
}
- groups = SessionControllerGetter.getUserBean().getOrganizationGroups(organization);
+ groups = userBean.getOrganizationGroups(organization);
}
else
{
- groups = SessionControllerGetter.getUserBean().getOrganizationGroups(user);
+ groups = userBean.getOrganizationGroups(user);
}
request.setAttribute("organizationGroups", groups);
request.setAttribute("messageKey",request.getParameter("messageKey"));
@@ -82,13 +87,13 @@ public class OrganizationGroupController extends HttpServlet {
{
// TODO: Restrict group access based on user privileges
Integer organizationGroupId = Integer.valueOf(request.getParameter("organizationGroupId"));
- OrganizationGroup oGroup = organizationGroupId > 0 ? SessionControllerGetter.getUserBean().getOrganizationGroup(organizationGroupId)
+ OrganizationGroup oGroup = organizationGroupId > 0 ? userBean.getOrganizationGroup(organizationGroupId)
: new OrganizationGroup();
request.setAttribute("messageKey",request.getParameter("messageKey"));
request.setAttribute("organizationGroup", oGroup);
- request.setAttribute("users", SessionControllerGetter.getUserBean().getUsers(user.getOrganizationId()));
- request.setAttribute("memberIds", SessionControllerGetter.getUserBean().getOrganizationGroupMemberIds(oGroup));
+ request.setAttribute("users", userBean.getUsers(user.getOrganizationId()));
+ request.setAttribute("memberIds", userBean.getOrganizationGroupMemberIds(oGroup));
request.getRequestDispatcher("organizationGroupForm.ftl").forward(request, response);
}
catch(NullPointerException | NumberFormatException ex)
@@ -102,7 +107,7 @@ public class OrganizationGroupController extends HttpServlet {
{
Integer organizationGroupId = Integer.valueOf(request.getParameter("organizationGroupId"));
OrganizationGroup oGroup = organizationGroupId > 0 ?
- SessionControllerGetter.getUserBean().getOrganizationGroup(organizationGroupId)
+ userBean.getOrganizationGroup(organizationGroupId)
:new OrganizationGroup();
// Validate form fields (except uploaded file)
@@ -121,7 +126,7 @@ public class OrganizationGroupController extends HttpServlet {
}
// Store the organizationGroup
- oGroup = SessionControllerGetter.getUserBean().storeOrganizationGroup(oGroup, formValidation.getFormField("organizationGroupUserIds").getWebValues());
+ oGroup = userBean.storeOrganizationGroup(oGroup, formValidation.getFormField("organizationGroupUserIds").getWebValues());
response.sendRedirect(
Globals.PROTOCOL + "://" + ServletUtil.getServerName(request)
@@ -141,11 +146,11 @@ public class OrganizationGroupController extends HttpServlet {
if(user.isOrganizationAdmin() || user.isSuperUser())
{
Integer organizationGroupId = Integer.valueOf(request.getParameter("organizationGroupId"));
- OrganizationGroup oGroup = SessionControllerGetter.getUserBean().getOrganizationGroup(organizationGroupId);
+ OrganizationGroup oGroup = userBean.getOrganizationGroup(organizationGroupId);
String messageKey = "";
if(oGroup != null)
{
- SessionControllerGetter.getUserBean().deleteOrganizationGroup(oGroup);
+ userBean.deleteOrganizationGroup(oGroup);
messageKey = "organizationGroupDeleted";
}
@@ -168,13 +173,13 @@ public class OrganizationGroupController extends HttpServlet {
if(user.isSuperUser() || user.isOrganizationAdmin())
{
Integer userId = Integer.valueOf(request.getParameter("userId"));
- viewUser = SessionControllerGetter.getUserBean().getVipsLogicUser(userId);
+ viewUser = userBean.getVipsLogicUser(userId);
}
else
{
viewUser = user;
}
- List<OrganizationGroup> userGroups = SessionControllerGetter.getUserBean().getOrganizationGroups(viewUser);
+ List<OrganizationGroup> userGroups = userBean.getOrganizationGroups(viewUser);
request.setAttribute("viewUser", user);
request.setAttribute("userGroups", userGroups);
request.getRequestDispatcher("userOrganizationGroupsList.ftl").forward(request, response);
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
index f829adbef049020735e1c595390dd289eab2d645..97ce9d8d1830d1755b1a2a53491ac2df9599b6dd 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/PointOfInterestController.java
@@ -28,6 +28,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.ServletException;
@@ -45,16 +46,16 @@ import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.entity.VipsLogicRole;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.entity.WeatherStationDataSource;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ExceptionUtil;
import no.nibio.vips.util.ServletUtil;
import no.nibio.vips.logic.entity.WeatherForecastProvider;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
import no.nibio.vips.gis.GISUtil;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Observation;
-import no.nibio.vips.logic.entity.PointOfInterestType;
-import no.nibio.vips.logic.entity.PointOfInterestTypeFarm;
-import no.nibio.vips.logic.entity.PointOfInterestTypeField;
import no.nibio.vips.logic.entity.helpers.PointOfInterestFactory;
import no.nibio.vips.logic.util.Globals;
import no.nibio.vips.logic.util.SystemTime;
@@ -66,12 +67,23 @@ import org.apache.http.client.utils.URIBuilder;
/**
* Handles transactions for POIs
- * @copyright 2013-2019 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class PointOfInterestController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+ @EJB
+ UserBean userBean;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ ObservationBean observationBean;
+
+
/**
* Processes requests for both HTTP
* <code>GET</code> and
@@ -116,24 +128,24 @@ public class PointOfInterestController extends HttpServlet {
:user.getOrganizationId().getOrganizationId();
if(organizationId.equals(-1))
{
- activeWeatherStations = SessionControllerGetter.getPointOfInterestBean().getAllWeatherStations(true);
- inactiveWeatherStations = SessionControllerGetter.getPointOfInterestBean().getAllWeatherStations(false);
+ activeWeatherStations = pointOfInterestBean.getAllWeatherStations(true);
+ inactiveWeatherStations = pointOfInterestBean.getAllWeatherStations(false);
}
else
{
organization = em.find(Organization.class, organizationId);
- activeWeatherStations = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization, true);
- inactiveWeatherStations = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization, false);
+ activeWeatherStations = pointOfInterestBean.getWeatherstationsForOrganization(organization, true);
+ inactiveWeatherStations = pointOfInterestBean.getWeatherstationsForOrganization(organization, false);
}
- request.setAttribute("organizations", SessionControllerGetter.getUserBean().getOrganizations());
+ request.setAttribute("organizations", userBean.getOrganizations());
request.setAttribute("organizationId", organizationId);
}
else
{
organization = user.getOrganizationId();
- activeWeatherStations = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization,true);
- inactiveWeatherStations = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization, false);
+ activeWeatherStations = pointOfInterestBean.getWeatherstationsForOrganization(organization,true);
+ inactiveWeatherStations = pointOfInterestBean.getWeatherstationsForOrganization(organization, false);
request.setAttribute("organizationId", organization.getOrganizationId());
}
@@ -159,7 +171,7 @@ public class PointOfInterestController extends HttpServlet {
// Single view
else
{
- PointOfInterest weatherStation = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(Integer.valueOf(pointOfInterestId));
+ PointOfInterest weatherStation = pointOfInterestBean.getPointOfInterest(Integer.valueOf(pointOfInterestId));
if(weatherStation instanceof PointOfInterestWeatherStation)
{
PointOfInterestWeatherStation stationWithDataSource = (PointOfInterestWeatherStation) weatherStation;
@@ -187,7 +199,7 @@ public class PointOfInterestController extends HttpServlet {
}
else if(action.equals("newWeatherStationForm"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
@@ -195,14 +207,14 @@ public class PointOfInterestController extends HttpServlet {
request.getSession().setAttribute("weatherStation", weatherStation);
request.setAttribute("defaultMapCenter",user.getOrganizationId().getDefaultMapCenter());
request.setAttribute("defaultMapZoom", user.getOrganizationId().getDefaultMapZoom());
- request.getSession().setAttribute("dataSources", SessionControllerGetter.getPointOfInterestBean().getWeatherStationDataSources());
+ request.getSession().setAttribute("dataSources", pointOfInterestBean.getWeatherStationDataSources());
request.getSession().setAttribute("availableTimeZones", SystemTime.getAvailableTimeZones());
request.getSession().setAttribute("defaultTimeZoneId", user.getOrganizationId().getDefaultTimeZone());
request.getSession().setAttribute("availableCountries", em.createNamedQuery("Country.findAll").getResultList());
request.getSession().setAttribute("defaultCountryCode", user.getOrganizationId().getCountryCode().getCountryCode());
request.getSession().setAttribute("weatherForecastProviders", em.createNamedQuery("WeatherForecastProvider.findAll").getResultList());
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getPointOfInterestBean().getUnusedExternalResourcesForPointOfInterest(weatherStation));
+ request.setAttribute("unreferencedExternalResources", pointOfInterestBean.getUnusedExternalResourcesForPointOfInterest(weatherStation));
if(user.isSuperUser())
{
@@ -227,7 +239,7 @@ public class PointOfInterestController extends HttpServlet {
// Authorization: ORGANIZATION ADMIN or SUPERUSER
else if(action.equals("editWeatherStationForm"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
@@ -236,14 +248,14 @@ public class PointOfInterestController extends HttpServlet {
request.getSession().setAttribute("weatherStation", weatherStation);
request.setAttribute("defaultMapCenter",user.getOrganizationId().getDefaultMapCenter());
request.setAttribute("defaultMapZoom", user.getOrganizationId().getDefaultMapZoom());
- request.getSession().setAttribute("dataSources", SessionControllerGetter.getPointOfInterestBean().getWeatherStationDataSources());
+ request.getSession().setAttribute("dataSources", pointOfInterestBean.getWeatherStationDataSources());
request.getSession().setAttribute("availableTimeZones", SystemTime.getAvailableTimeZones());
request.getSession().setAttribute("defaultTimeZoneId", user.getOrganizationId().getDefaultTimeZone());
request.getSession().setAttribute("availableCountries", em.createNamedQuery("Country.findAll").getResultList());
request.getSession().setAttribute("defaultCountryCode", user.getOrganizationId().getCountryCode().getCountryCode());
request.getSession().setAttribute("weatherForecastProviders", em.createNamedQuery("WeatherForecastProvider.findAll").getResultList());
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getPointOfInterestBean().getUnusedExternalResourcesForPointOfInterest(weatherStation));
+ request.setAttribute("unreferencedExternalResources", pointOfInterestBean.getUnusedExternalResourcesForPointOfInterest(weatherStation));
request.setAttribute("messageKey", request.getParameter("messageKey"));
if(user.isSuperUser())
{
@@ -267,7 +279,7 @@ public class PointOfInterestController extends HttpServlet {
// Authorization: ORGANIZATION ADMIN or SUPERUSER
else if(action.equals("weatherStationFormSubmit"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
@@ -327,7 +339,7 @@ public class PointOfInterestController extends HttpServlet {
weatherStation.setUserId(user);
}
// Store
- weatherStation = SessionControllerGetter.getPointOfInterestBean().storeWeatherStation(weatherStation);
+ weatherStation = pointOfInterestBean.storeWeatherStation(weatherStation);
Map<String, FormField> externalResourceIdentifiers = formValidation.getMultipleMapFormFields().get("externalResourceIdentifier");
if(externalResourceIdentifiers != null)
@@ -339,7 +351,7 @@ public class PointOfInterestController extends HttpServlet {
if(identifierField.getWebValue() == null || identifierField.getWebValue().isEmpty())
{
// We delete existing if unset
- SessionControllerGetter.getPointOfInterestBean().deletePointOfInterestExternalResource(weatherStation.getPointOfInterestId(), externalResourceId);
+ pointOfInterestBean.deletePointOfInterestExternalResource(weatherStation.getPointOfInterestId(), externalResourceId);
}
else
{
@@ -348,7 +360,7 @@ public class PointOfInterestController extends HttpServlet {
PointOfInterestExternalResourcePK pk = new PointOfInterestExternalResourcePK(weatherStation.getPointOfInterestId(), externalResourceId);
poiExternalResource.setPointOfInterestExternalResourcePK(pk);
poiExternalResource.setResourceIdentifier(identifierField.getWebValue());
- SessionControllerGetter.getPointOfInterestBean().storePointOfInterestExternalResource(poiExternalResource);
+ pointOfInterestBean.storePointOfInterestExternalResource(poiExternalResource);
}
}
}
@@ -367,7 +379,7 @@ public class PointOfInterestController extends HttpServlet {
request.setAttribute("defaultMapCenter",user.getOrganizationId().getDefaultMapCenter());
request.setAttribute("defaultMapZoom", user.getOrganizationId().getDefaultMapZoom());
request.setAttribute("returnURL","weatherStation?organizationId=" + user.getOrganizationId().getOrganizationId());
- request.getSession().setAttribute("dataSources", SessionControllerGetter.getPointOfInterestBean().getWeatherStationDataSources());
+ request.getSession().setAttribute("dataSources", pointOfInterestBean.getWeatherStationDataSources());
request.getSession().setAttribute("availableTimeZones", SystemTime.getAvailableTimeZones());
request.getSession().setAttribute("defaultTimeZoneId", user.getOrganizationId().getDefaultTimeZone());
request.getSession().setAttribute("availableCountries", em.createNamedQuery("Country.findAll").getResultList());
@@ -387,13 +399,13 @@ public class PointOfInterestController extends HttpServlet {
}
else if(action.equals("deleteWeatherStationPreview"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
Integer pointOfInterestId = Integer.valueOf(request.getParameter("pointOfInterestId"));
PointOfInterestWeatherStation weatherStation = em.find(PointOfInterestWeatherStation.class, pointOfInterestId);
- List<ForecastConfiguration> forecastConfigurations = SessionControllerGetter.getForecastBean().getForecastConfigurationsByWeatherStation(weatherStation);
+ List<ForecastConfiguration> forecastConfigurations = forecastBean.getForecastConfigurationsByWeatherStation(weatherStation);
// If no strings attached, delete immediately
if(forecastConfigurations.isEmpty())
{
@@ -405,7 +417,7 @@ public class PointOfInterestController extends HttpServlet {
}
else
{
- Map<String, ModelInformation> modelInformationMap = SessionControllerGetter.getForecastBean().getIndexedModelInformation();
+ Map<String, ModelInformation> modelInformationMap = forecastBean.getIndexedModelInformation();
request.setAttribute("returnURL","weatherStation?action=editWeatherStationForm&pointOfInterestId=" + pointOfInterestId);
request.setAttribute("weatherStation", weatherStation);
request.setAttribute("forecastConfigurations", forecastConfigurations);
@@ -425,13 +437,13 @@ public class PointOfInterestController extends HttpServlet {
}
else if(action.equals("deleteWeatherStation"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
try
{
Integer pointOfInterestId = Integer.valueOf(request.getParameter("pointOfInterestId"));
//PointOfInterestWeatherStation weatherStation = em.find(PointOfInterestWeatherStation.class, pointOfInterestId);
- SessionControllerGetter.getPointOfInterestBean().deleteWeatherStation(pointOfInterestId);
+ pointOfInterestBean.deleteWeatherStation(pointOfInterestId);
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://")
.append(ServletUtil.getServerName(request))
.append("/weatherStation")
@@ -467,26 +479,26 @@ public class PointOfInterestController extends HttpServlet {
:user.getOrganizationId().getOrganizationId();
if(organizationId.equals(-1))
{
- pois = SessionControllerGetter.getPointOfInterestBean().getAllPois();
+ pois = pointOfInterestBean.getAllPois();
}
else
{
organization = em.find(Organization.class, organizationId);
- pois = SessionControllerGetter.getPointOfInterestBean().getPoisForOrganization(organization);
+ pois = pointOfInterestBean.getPoisForOrganization(organization);
}
- request.setAttribute("organizations", SessionControllerGetter.getUserBean().getOrganizations());
+ request.setAttribute("organizations", userBean.getOrganizations());
request.setAttribute("organizationId", organizationId);
}
else if(user.isOrganizationAdmin())
{
organization = user.getOrganizationId();
- pois = SessionControllerGetter.getPointOfInterestBean().getPoisForOrganization(organization);
+ pois = pointOfInterestBean.getPoisForOrganization(organization);
request.setAttribute("organizationId", organization.getOrganizationId());
}
else
{
- pois = SessionControllerGetter.getPointOfInterestBean().getRelevantPointOfInterestsForUser(user);
+ pois = pointOfInterestBean.getRelevantPointOfInterestsForUser(user);
request.setAttribute("organizationId", user.getOrganizationId().getOrganizationId());
}
@@ -511,7 +523,7 @@ public class PointOfInterestController extends HttpServlet {
// Single view
else
{
- PointOfInterest poi = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(Integer.valueOf(pointOfInterestId));
+ PointOfInterest poi = pointOfInterestBean.getPointOfInterest(Integer.valueOf(pointOfInterestId));
request.getSession().setAttribute("poi", poi);
request.getSession().setAttribute("availableTimeZones", SystemTime.getAvailableTimeZones());
request.getSession().setAttribute("defaultTimeZoneId", user.getOrganizationId().getDefaultTimeZone());
@@ -537,11 +549,11 @@ public class PointOfInterestController extends HttpServlet {
request.getSession().setAttribute("defaultTimeZoneId", user.getOrganizationId().getDefaultTimeZone());
request.getSession().setAttribute("availableCountries", em.createNamedQuery("Country.findAll").getResultList());
request.getSession().setAttribute("defaultCountryCode", user.getOrganizationId().getCountryCode().getCountryCode());
- request.getSession().setAttribute("groups", user.isSuperUser() || user.isOrganizationAdmin() ? SessionControllerGetter.getUserBean().getOrganizationGroups(user.getOrganizationId())
- :SessionControllerGetter.getUserBean().getOrganizationGroups(user));
- request.getSession().setAttribute("poiGroupIds", SessionControllerGetter.getPointOfInterestBean().getPoiGroupIds(poi));
+ request.getSession().setAttribute("groups", user.isSuperUser() || user.isOrganizationAdmin() ? userBean.getOrganizationGroups(user.getOrganizationId())
+ :userBean.getOrganizationGroups(user));
+ request.getSession().setAttribute("poiGroupIds", pointOfInterestBean.getPoiGroupIds(poi));
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getPointOfInterestBean().getUnusedExternalResourcesForPointOfInterest(poi));
+ request.setAttribute("unreferencedExternalResources", pointOfInterestBean.getUnusedExternalResourcesForPointOfInterest(poi));
if(user.isSuperUser())
{
@@ -572,7 +584,7 @@ public class PointOfInterestController extends HttpServlet {
Integer pointOfInterestId = Integer.valueOf(request.getParameter("pointOfInterestId"));
PointOfInterest poi = em.find(PointOfInterest.class, pointOfInterestId);
// Does the current user have the rights to edit this poi?
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
|| Objects.equals(user.getUserId(), poi.getUserId().getUserId())
)
{
@@ -584,11 +596,11 @@ public class PointOfInterestController extends HttpServlet {
request.getSession().setAttribute("weatherForecastProviders", em.createNamedQuery("WeatherForecastProvider.findAll").getResultList());
request.getSession().setAttribute("availableCountries", em.createNamedQuery("Country.findAll").getResultList());
request.getSession().setAttribute("defaultCountryCode", user.getOrganizationId().getCountryCode().getCountryCode());
- request.getSession().setAttribute("groups", user.isSuperUser() || user.isOrganizationAdmin() ? SessionControllerGetter.getUserBean().getOrganizationGroups(user.getOrganizationId())
- :SessionControllerGetter.getUserBean().getOrganizationGroups(user));
- request.getSession().setAttribute("poiGroupIds", SessionControllerGetter.getPointOfInterestBean().getPoiGroupIds(poi));
+ request.getSession().setAttribute("groups", user.isSuperUser() || user.isOrganizationAdmin() ? userBean.getOrganizationGroups(user.getOrganizationId())
+ :userBean.getOrganizationGroups(user));
+ request.getSession().setAttribute("poiGroupIds", pointOfInterestBean.getPoiGroupIds(poi));
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getPointOfInterestBean().getUnusedExternalResourcesForPointOfInterest(poi));
+ request.setAttribute("unreferencedExternalResources", pointOfInterestBean.getUnusedExternalResourcesForPointOfInterest(poi));
request.setAttribute("messageKey", request.getParameter("messageKey"));
if(user.isSuperUser())
{
@@ -624,12 +636,12 @@ public class PointOfInterestController extends HttpServlet {
PointOfInterest poi = pointOfInterestId > 0 ?
em.find(PointOfInterest.class, pointOfInterestId)
: PointOfInterestFactory.getPointOfInterest(formValidation.getFormField("pointOfInterestTypeId").getValueAsInteger());
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
|| poi.getPointOfInterestId() == null
|| Objects.equals(user.getUserId(), poi.getUserId().getUserId())
)
{
- Boolean poiNameAlreadyExists = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(formValidation.getFormField("name").getWebValue()) != null;
+ Boolean poiNameAlreadyExists = pointOfInterestBean.getPointOfInterest(formValidation.getFormField("name").getWebValue()) != null;
// Only store if valid form data and NOT a new poi with an existing poiName
if(formValidation.isValid() && !(poi.getPointOfInterestId() == null && poiNameAlreadyExists))
{
@@ -637,7 +649,7 @@ public class PointOfInterestController extends HttpServlet {
poi.setName(formValidation.getFormField("name").getWebValue());
// A POI is per default not a forecast location. Only superusers and orgadmins
// may change the status
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
poi.setIsForecastLocation(formValidation.getFormField("isForecastLocation").getWebValue() != null);
}
@@ -683,7 +695,7 @@ public class PointOfInterestController extends HttpServlet {
poi.setUserId(user);
}
// Store
- poi = SessionControllerGetter.getPointOfInterestBean().storePoi(poi);
+ poi = pointOfInterestBean.storePoi(poi);
Map<String, FormField> externalResourceIdentifiers = formValidation.getMultipleMapFormFields().get("externalResourceIdentifier");
if(externalResourceIdentifiers != null)
@@ -695,7 +707,7 @@ public class PointOfInterestController extends HttpServlet {
if(identifierField.getWebValue() == null || identifierField.getWebValue().isEmpty())
{
// We delete existing if unset
- SessionControllerGetter.getPointOfInterestBean().deletePointOfInterestExternalResource(poi.getPointOfInterestId(), externalResourceId);
+ pointOfInterestBean.deletePointOfInterestExternalResource(poi.getPointOfInterestId(), externalResourceId);
}
else
{
@@ -704,12 +716,12 @@ public class PointOfInterestController extends HttpServlet {
PointOfInterestExternalResourcePK pk = new PointOfInterestExternalResourcePK(poi.getPointOfInterestId(), externalResourceId);
poiExternalResource.setPointOfInterestExternalResourcePK(pk);
poiExternalResource.setResourceIdentifier(identifierField.getWebValue());
- SessionControllerGetter.getPointOfInterestBean().storePointOfInterestExternalResource(poiExternalResource);
+ pointOfInterestBean.storePointOfInterestExternalResource(poiExternalResource);
}
}
}
- SessionControllerGetter.getPointOfInterestBean().storePointOfInterestOrganizationGroupIds(poi,formValidation.getFormField("organizationGroupIds").getWebValues());
+ pointOfInterestBean.storePointOfInterestOrganizationGroupIds(poi,formValidation.getFormField("organizationGroupIds").getWebValues());
String returnIdCallback = request.getParameter("returnIdCallback");
@@ -744,7 +756,7 @@ public class PointOfInterestController extends HttpServlet {
request.setAttribute("defaultMapZoom", user.getOrganizationId().getDefaultMapZoom());
request.setAttribute("returnURL","poi?organizationId=" + user.getOrganizationId().getOrganizationId());
// Finding all external resources where entry is missing
- request.setAttribute("unreferencedExternalResources", SessionControllerGetter.getPointOfInterestBean().getUnusedExternalResourcesForPointOfInterest(poi));
+ request.setAttribute("unreferencedExternalResources", pointOfInterestBean.getUnusedExternalResourcesForPointOfInterest(poi));
request.getSession().setAttribute("availableTimeZones", SystemTime.getAvailableTimeZones());
request.getSession().setAttribute("defaultTimeZoneId", user.getOrganizationId().getDefaultTimeZone());
request.getSession().setAttribute("availableCountries", em.createNamedQuery("Country.findAll").getResultList());
@@ -770,7 +782,7 @@ public class PointOfInterestController extends HttpServlet {
Integer pointOfInterestId = Integer.valueOf(request.getParameter("pointOfInterestId"));
PointOfInterest poi = em.find(PointOfInterest.class, pointOfInterestId);
if(
- SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
+ userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
|| user.getUserId().equals(poi.getUserId().getUserId())
)
{
@@ -778,10 +790,10 @@ public class PointOfInterestController extends HttpServlet {
{
// Are there forecasts attached to this location
- List<ForecastConfiguration> forecastConfigurations = SessionControllerGetter.getForecastBean().getForecastConfigurationsByLocation(poi);
+ List<ForecastConfiguration> forecastConfigurations = forecastBean.getForecastConfigurationsByLocation(poi);
// TODO: Are there observations attached to this location?
- List<Observation> observations = SessionControllerGetter.getObservationBean().getObservationsByLocation(poi);
+ List<Observation> observations = observationBean.getObservationsByLocation(poi);
//
// If no strings attached, delete immediately
if(forecastConfigurations.isEmpty() && observations.isEmpty())
@@ -794,7 +806,7 @@ public class PointOfInterestController extends HttpServlet {
}
else
{
- Map<String, ModelInformation> modelInformationMap = SessionControllerGetter.getForecastBean().getIndexedModelInformation();
+ Map<String, ModelInformation> modelInformationMap = forecastBean.getIndexedModelInformation();
request.setAttribute("returnURL","poi?action=editPoiForm&pointOfInterestId=" + pointOfInterestId);
request.setAttribute("poi", poi);
request.setAttribute("forecastConfigurations", forecastConfigurations);
@@ -819,13 +831,13 @@ public class PointOfInterestController extends HttpServlet {
Integer pointOfInterestId = Integer.valueOf(request.getParameter("pointOfInterestId"));
PointOfInterest poi = em.find(PointOfInterest.class, pointOfInterestId);
if(
- SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
+ userBean.authorizeUser(user, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
|| user.getUserId().equals(poi.getUserId().getUserId())
)
{
try
{
- SessionControllerGetter.getPointOfInterestBean().deletePoi(pointOfInterestId);
+ pointOfInterestBean.deletePoi(pointOfInterestId);
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://")
.append(ServletUtil.getServerName(request))
.append("/poi")
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java
index 28dc396a65a9f5cd8360946fabe16d3496a0e17f..da7e5b8895e9282feae0b07dfe838f49649a5cc3 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/SchedulingController.java
@@ -28,6 +28,7 @@ import java.text.MessageFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.ServletException;
@@ -45,7 +46,6 @@ import no.nibio.vips.logic.scheduling.TerminateSchedulerListener;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
import no.nibio.vips.logic.scheduling.VipsLogicTaskFactory;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ServletUtil;
import no.nibio.web.forms.FormValidation;
import no.nibio.web.forms.FormValidationException;
@@ -62,6 +62,11 @@ public class SchedulingController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ UserBean userBean;
+ @EJB
+ SchedulingBean schedulingBean;
+
/**
* Processes requests for both HTTP
* <code>GET</code> and
@@ -77,8 +82,6 @@ public class SchedulingController extends HttpServlet {
String action = request.getParameter("action");
VipsLogicUser user = (VipsLogicUser) request.getSession().getAttribute("user");
- UserBean userBean = SessionControllerGetter.getUserBean();
- SchedulingBean schedulingBean = SessionControllerGetter.getSchedulingBean();
// Default: Overview of running tasks
// for SUPERUSERS and ORGANIZATION ADMINS
diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java
index 24034d1e7479b47119da499e8e57157c0524628a..5e9d4a3ad79e4e4f7d8b37e63fd8b47aef0e4b10 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/UserController.java
@@ -32,6 +32,7 @@ import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
@@ -52,7 +53,6 @@ import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.entity.misc.UserResources;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.ServletUtil;
import no.nibio.web.forms.FormField;
import no.nibio.web.forms.FormUtil;
@@ -62,13 +62,17 @@ import no.nibio.web.forms.FormValidator;
/**
* Handles user actions
- * @copyright 2013-2015 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class UserController extends HttpServlet {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ UserBean userBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
@@ -83,7 +87,6 @@ public class UserController extends HttpServlet {
String action = request.getParameter("action");
VipsLogicUser user = (VipsLogicUser) request.getSession().getAttribute("user");
- UserBean userBean = SessionControllerGetter.getUserBean();
// Default: View list of users
// for SUPERUSERS and ORGANIZATION ADMINS
@@ -332,7 +335,7 @@ public class UserController extends HttpServlet {
}
}
userBean.storeUser(viewUser);
- SessionControllerGetter.getUserBean().handleUserStatusChange(oldUserStatusId, viewUser, SessionLocaleUtil.getI18nBundle(request), ServletUtil.getServerName(request));
+ userBean.handleUserStatusChange(oldUserStatusId, viewUser, SessionLocaleUtil.getI18nBundle(request), ServletUtil.getServerName(request));
// Add confirmation message
messageKey = "userUpdated";
}
@@ -395,7 +398,7 @@ public class UserController extends HttpServlet {
{
Integer userId = Integer.valueOf(request.getParameter("userId"));
VipsLogicUser viewUser = em.find(VipsLogicUser.class, userId);
- UserResources userResources = SessionControllerGetter.getUserBean().getUserResources(viewUser);
+ UserResources userResources = userBean.getUserResources(viewUser);
// If some resources connected, render form, otherwise, route to user delete
if(userResources.isEmpty())
@@ -439,7 +442,7 @@ public class UserController extends HttpServlet {
VipsLogicUser viewUser = em.find(VipsLogicUser.class, userId);
// Are there resources connected to this user?
- UserResources userResources = SessionControllerGetter.getUserBean().getUserResources(viewUser);
+ UserResources userResources = userBean.getUserResources(viewUser);
if(! userResources.isEmpty())
{
boolean resourcesTransferred = false;
@@ -449,7 +452,7 @@ public class UserController extends HttpServlet {
VipsLogicUser transferToUser = em.find(VipsLogicUser.class, transferToUserId);
if(transferToUser != null)
{
- SessionControllerGetter.getUserBean().transferUserResources(viewUser,transferToUser);
+ userBean.transferUserResources(viewUser,transferToUser);
resourcesTransferred = true;
}
}
@@ -623,12 +626,12 @@ public class UserController extends HttpServlet {
else if(action.equals("confirmEmail"))
{
String verificationCode = request.getParameter("verificationCode");
- VipsLogicUser confirmUser = SessionControllerGetter.getUserBean().verifyUserEmail(verificationCode);
+ VipsLogicUser confirmUser = userBean.verifyUserEmail(verificationCode);
if(confirmUser != null)
{
// Success
// Send message to organization admin that user has confirmed his/her email
- SessionControllerGetter.getUserBean().informAdminOfConfirmedEmail(confirmUser, SessionLocaleUtil.getI18nBundle(request), ServletUtil.getServerName(request));
+ userBean.informAdminOfConfirmedEmail(confirmUser, SessionLocaleUtil.getI18nBundle(request), ServletUtil.getServerName(request));
request.setAttribute("messageKey","confirmEmailReceipt");
request.getRequestDispatcher("/login.ftl").forward(request, response);
}
@@ -655,9 +658,9 @@ public class UserController extends HttpServlet {
{
Integer oldUserStatusId = userToApprove.getUserStatusId();
userToApprove.setUserStatusId(Globals.USER_STATUS_APPROVED);
- SessionControllerGetter.getUserBean().storeUser(userToApprove);
+ userBean.storeUser(userToApprove);
// Handle user status change
- SessionControllerGetter.getUserBean().handleUserStatusChange(oldUserStatusId, userToApprove, SessionLocaleUtil.getI18nBundle(request), ServletUtil.getServerName(request));
+ userBean.handleUserStatusChange(oldUserStatusId, userToApprove, SessionLocaleUtil.getI18nBundle(request), ServletUtil.getServerName(request));
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://").append(ServletUtil.getServerName(request)).append("/user").append("?messageKey=").append("userApproved").toString());
}
}
@@ -690,7 +693,7 @@ public class UserController extends HttpServlet {
creds.put("username", username);
creds.put("password", password);
- VipsLogicUser searchUser = SessionControllerGetter.getUserBean().authenticateUser(creds);
+ VipsLogicUser searchUser = userBean.authenticateUser(creds);
if(searchUser != null)
{
@@ -700,7 +703,7 @@ public class UserController extends HttpServlet {
userAuth.setUsername((String)request.getSession().getAttribute("openId"));
UserAuthenticationPK pk = new UserAuthenticationPK(searchUser.getUserId(), userAuthenticationType.getUserAuthenticationTypeId());
userAuth.setUserAuthenticationPK(pk);
- SessionControllerGetter.getUserBean().storeUserAuthentication(userAuth);
+ userBean.storeUserAuthentication(userAuth);
//em.persist(userAuth);
request.setAttribute("messageKey", "attachIdToExistingUserReceipt");
request.getRequestDispatcher("/login.ftl").forward(request, response);
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
index 84f69950769af32a4b74f7ae9fa0f0981f3e8092..57d32334b41cfff34cbe8175e5bd4e3e52a1531d 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
@@ -45,6 +45,7 @@ import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
@@ -84,7 +85,7 @@ import org.apache.commons.lang.StringUtils;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
/**
- * @copyright 2013-2017 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Stateless
@@ -93,6 +94,12 @@ public class ForecastBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ ForecastBean forecastBean;
+
+ @EJB
+ UserBean userBean;
+
/**
* Returns all forecast results.
* @return
@@ -143,7 +150,7 @@ public class ForecastBean {
return false;
}
UUID uUUID = UUID.fromString(userUUID);
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ VipsLogicUser user = userBean.findVipsLogicUser(uUUID);
if(user == null || ! user.getUserId().equals( fc.getVipsLogicUserId().getUserId()))
{
return false;
@@ -674,7 +681,7 @@ public class ForecastBean {
List<Result> results = (List<Result>) resp.readEntity(new GenericType<List<Result>>(){});
//System.out.println("ForecastConfigId=" + forecastConfiguration.getForecastConfigurationId() + ", resultsize=" + results.size());
// We delete all former results before we store the new ones
- SessionControllerGetter.getForecastBean().storeResults(forecastConfiguration,results);
+ forecastBean.storeResults(forecastConfiguration,results);
}
else
{
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java
index 8d54d5c6cabe7cdf19862187aceb3ae7411be31e..412b233231aad5639f8f1ec8e438e24d8d8dc6e4 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java
@@ -39,6 +39,7 @@ import java.util.Map.Entry;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
@@ -58,7 +59,6 @@ import no.nibio.vips.logic.entity.PointOfInterest;
import no.nibio.vips.logic.entity.PolygonService;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.observationdata.ObservationDataSchema;
import no.nibio.vips.observationdata.ObservationDataSchemaPK;
@@ -77,6 +77,11 @@ public class ObservationBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+ @EJB
+ UserBean userBean;
+
public List<Observation> getObservations(Integer organizationId)
{
Organization organization = em.find(Organization.class,organizationId);
@@ -483,7 +488,7 @@ public class ObservationBean {
{
return observations;
}
- List<PointOfInterest> pois = SessionControllerGetter.getPointOfInterestBean().getPois(locationPointOfInterestIds);
+ List<PointOfInterest> pois = pointOfInterestBean.getPois(locationPointOfInterestIds);
Map<Integer, PointOfInterest> mappedPois = new HashMap<>();
pois.stream().forEach((poi) -> {
mappedPois.put(poi.getPointOfInterestId(), poi);
@@ -504,7 +509,7 @@ public class ObservationBean {
{
return observations;
}
- List<VipsLogicUser> users = SessionControllerGetter.getUserBean().getUsers(userIds);
+ List<VipsLogicUser> users = userBean.getUsers(userIds);
Map<Integer, VipsLogicUser> mappedUsers = new HashMap<>();
users.stream().forEach((user) -> {
mappedUsers.put(user.getUserId(), user);
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java b/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java
index 3d83a3b3161151017d5617305c626be38275e9f6..cc7997f767133461935a74f143769c3391fa298a 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java
@@ -34,6 +34,7 @@ import java.util.Objects;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
@@ -67,6 +68,11 @@ public class PointOfInterestBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ ObservationBean observationBean;
+
public List<PointOfInterest> getWeatherstations(String countryCode)
{
Query q = em.createNamedQuery("PointOfInterest.findByPointOfInterestTypeAndCountryCode");
@@ -324,7 +330,7 @@ public class PointOfInterestBean {
public void deleteWeatherStation(Integer pointOfInterestId)
{
PointOfInterestWeatherStation weatherStation = em.find(PointOfInterestWeatherStation.class, pointOfInterestId);
- SessionControllerGetter.getForecastBean().deleteForecastConfigurationsForWeatherStation(weatherStation);
+ forecastBean.deleteForecastConfigurationsForWeatherStation(weatherStation);
em.remove(weatherStation);
}
@@ -360,8 +366,8 @@ public class PointOfInterestBean {
public void deletePoi(Integer pointOfInterestId) {
PointOfInterest poi = em.find(PointOfInterest.class, pointOfInterestId);
- SessionControllerGetter.getForecastBean().deleteForecastConfigurationsForLocation(poi);
- SessionControllerGetter.getObservationBean().deleteObservationsForLocation(poi);
+ forecastBean.deleteForecastConfigurationsForLocation(poi);
+ observationBean.deleteObservationsForLocation(poi);
em.remove(poi);
}
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
index abbfafa0e1ad5087188c56356089b116a9941e40..a0131b2d665cc0e8f31df57fbe4b6786e9dfaceb 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
@@ -38,6 +38,7 @@ import java.util.Set;
import java.util.SortedMap;
import java.util.TimeZone;
import java.util.TreeMap;
+import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -63,7 +64,6 @@ import no.nibio.vips.logic.scheduling.VipsLogicTaskFactory;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
import no.nibio.vips.logic.scheduling.model.preprocessor.NaerstadModelPreprocessor;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
@@ -77,6 +77,11 @@ public class SchedulingBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ UserBean userBean;
+ @EJB
+ ForecastBean forecastBean;
+
// There can be only one systemScheduler!
private static Scheduler systemScheduler;
@@ -175,7 +180,7 @@ public class SchedulingBean {
VIPSLogicTaskCollector modelRunCollector = new VIPSLogicTaskCollector(-1);
// Separating the forecasts for each organization
- List<Organization> organizations = SessionControllerGetter.getUserBean().getOrganizationsWithActiveForecastConfigurations(SystemTime.getSystemTime());
+ List<Organization> organizations = userBean.getOrganizationsWithActiveForecastConfigurations(SystemTime.getSystemTime());
if(organizations != null && !organizations.isEmpty())
{
for(Organization org:organizations)
@@ -257,7 +262,7 @@ public class SchedulingBean {
List<Result> results = resp.readEntity(new GenericType<List<Result>>(){});
// We delete all former results before we store the new ones
- SessionControllerGetter.getForecastBean().storeResults(c,results);
+ forecastBean.storeResults(c,results);
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java b/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java
index 93e95092f25ad123ff5ac355d750bfd411afcf31..cb6f26ede9c7b586b8cb893b269cb7dfc82d60de 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/UserBean.java
@@ -41,6 +41,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
@@ -59,7 +60,6 @@ import no.nibio.vips.logic.entity.Observation;
import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.OrganizationGroup;
import no.nibio.vips.logic.entity.PointOfInterest;
-import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.entity.UserAuthentication;
import no.nibio.vips.logic.entity.UserAuthenticationPK;
import no.nibio.vips.logic.entity.UserAuthenticationType;
@@ -68,8 +68,8 @@ import no.nibio.vips.logic.entity.UserUuidPK;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.entity.misc.UserResources;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
+import no.nibio.vips.logic.messaging.MessagingBean;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SimpleMailSender;
import no.nibio.vips.logic.util.StringUtils;
import no.nibio.vips.util.MD5Encrypter;
@@ -100,6 +100,19 @@ public class UserBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ UserBean userBean;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ MessagingBean messagingBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+ @EJB
+ MessageBean messageBean;
+ @EJB
+ ObservationBean observationBean;
+
private Properties serverProperties;
private List<Rule> defaultPasswordValidatorRuleList;
@@ -216,7 +229,7 @@ public class UserBean {
{
// Must double check: NO user can be force deleted without first
// transferring resources to another user
- UserResources userResources = SessionControllerGetter.getUserBean().getUserResources(user);
+ UserResources userResources = userBean.getUserResources(user);
if(! userResources.isEmpty())
{
throw new DeleteUserException("User still has resources connected to them.");
@@ -228,12 +241,12 @@ public class UserBean {
throw new DeleteUserException("User is an archive user for organization " + user.getOrganizationId().getOrganizationName() + ". Can't delete it");
}
// Remove all notification subscriptions
- SessionControllerGetter.getMessagingBean().deleteAllNotificationSubscriptions(user);
+ messagingBean.deleteAllNotificationSubscriptions(user);
// Remove all User UUIDs
this.deleteAllUserUuidsForUser(user);
// Delete all of the user's private forecast configurations and results
- SessionControllerGetter.getForecastBean().deleteAllPrivateForecastConfigurationsForUser(user);
+ forecastBean.deleteAllPrivateForecastConfigurationsForUser(user);
em.remove(user);
}
@@ -241,12 +254,12 @@ public class UserBean {
public UserResources getUserResources(VipsLogicUser user)
{
UserResources retVal = new UserResources();
- retVal.setPois(SessionControllerGetter.getPointOfInterestBean().getPoisForUser(user));
- retVal.setMessageLocales(SessionControllerGetter.getMessageBean().getMessageLocaleList(user));
- retVal.setForecastConfigurations(SessionControllerGetter.getForecastBean().getForecastConfigurationsForUser(user.getUserId()));
- List<Observation> observations = SessionControllerGetter.getObservationBean().getObservationsForUser(user);
- observations.addAll(SessionControllerGetter.getObservationBean().getObservationsLastEditedByUser(user));
- observations.addAll(SessionControllerGetter.getObservationBean().getObservationsStatusChangedByUser(user));
+ retVal.setPois(pointOfInterestBean.getPoisForUser(user));
+ retVal.setMessageLocales(messageBean.getMessageLocaleList(user));
+ retVal.setForecastConfigurations(forecastBean.getForecastConfigurationsForUser(user.getUserId()));
+ List<Observation> observations = observationBean.getObservationsForUser(user);
+ observations.addAll(observationBean.getObservationsLastEditedByUser(user));
+ observations.addAll(observationBean.getObservationsStatusChangedByUser(user));
retVal.setObservations(observations);
return retVal;
}
diff --git a/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java b/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
index 9ae303f9753a1eb1908652298295024cdd9d3ff1..c9d24318aa54e7c02910b6e29abe187d838efc55 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
@@ -100,7 +100,7 @@ public class MessagingBean {
// Store it
em.persist(uMessage);
- ResteasyClient client = new ResteasyClientBuilder().build();
+ ResteasyClient client = (ResteasyClient) ResteasyClientBuilder.newClient();//new ResteasyClientBuilder().build();
//client.register(new RESTAuthenticator("user", "userPass"));
client.register(new RESTAuthenticator("VIPSLogic", "plmoknijbuhv000"));
//ResteasyWebTarget target = client.target("http://kart13utv.ad.skogoglandskap.no:8080");
diff --git a/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java b/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java
index 93d453f00bec03d1526a809218f555f15abaaa39..b85bcdf76c8cd64019a244608f9edbd7d05cb7c9 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/sms/SMSHandlingService.java
@@ -20,10 +20,12 @@
package no.nibio.vips.logic.messaging.sms;
import com.webcohesion.enunciate.metadata.Facet;
+import javax.ejb.EJB;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.util.SessionControllerGetter;
@@ -34,6 +36,9 @@ import no.nibio.vips.logic.util.SessionControllerGetter;
@Path("rest/sms")
@Facet("restricted")
public class SMSHandlingService {
+
+ @EJB
+ UserBean userBean;
/**
* Sample of incoming request: /rest/sms/vianett/customer_request
@@ -64,7 +69,7 @@ public class SMSHandlingService {
reply.setErrorcode("0");
if(message !=null && sourceaddr != null && username!=null && username.equals("vianett") && password != null && password.equals("plantevern2016"))
{
- VipsLogicUser user = SessionControllerGetter.getUserBean().getUserByPhoneNumber(sourceaddr);
+ VipsLogicUser user = userBean.getUserByPhoneNumber(sourceaddr);
if(user != null)
{
if(message.trim().toUpperCase().equals("STOP"))
@@ -77,7 +82,7 @@ public class SMSHandlingService {
user.setApprovesSmsBilling(true);
reply.setResponse_msg("Confirmation: Sending and billing of SMS messages from VIPS is started.");
}
- SessionControllerGetter.getUserBean().storeUser(user);
+ userBean.storeUser(user);
reply.setResponse_fromalpha("Vips");
reply.setResponse_pricegroup("0");
}
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
index 0fa0defcedac622cfd24fbe6f1c3747f26861df0..6a0df4f0e18f9639492996f350f03143ee3cd409 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
@@ -20,7 +20,6 @@ package no.nibio.vips.logic.modules.applefruitmoth;
import com.ibm.icu.util.Calendar;
import java.io.IOException;
-import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -30,10 +29,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.VipsLogicRole;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.util.Globals;
@@ -51,6 +52,12 @@ import no.nibio.web.forms.FormValidator;
*/
public class AppleFruitMothController extends HttpServlet {
+ @EJB
+ UserBean userBean;
+ @EJB
+ AppleFruitMothBean appleFruitMothBean;
+
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
@@ -64,13 +71,13 @@ public class AppleFruitMothController extends HttpServlet {
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
VipsLogicUser user = (VipsLogicUser) request.getSession().getAttribute("user");
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.APPLE_FRUIT_MOTH_ADMINISTRATOR, VipsLogicRole.APPLE_FRUIT_MOTH_BERRY_CLUSTER_COUNTER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.APPLE_FRUIT_MOTH_ADMINISTRATOR, VipsLogicRole.APPLE_FRUIT_MOTH_BERRY_CLUSTER_COUNTER, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
String action = request.getParameter("action");
if(action == null)
{
// Show map and list of existing stations
- List<ObservationSite> observationSites = SessionControllerGetter.getAppleFruitMothBean().getObservationSitesWithClusterCountLastUpdate();
+ List<ObservationSite> observationSites = appleFruitMothBean.getObservationSitesWithClusterCountLastUpdate();
request.setAttribute("observationSites", observationSites);
request.getRequestDispatcher("/appleFruitMothStationList.ftl").forward(request, response);
}
@@ -83,7 +90,7 @@ public class AppleFruitMothController extends HttpServlet {
cal.setTime(SystemTime.getSystemTime());
Integer lastSeason = cal.get(Calendar.YEAR);
Integer currentSeason = request.getParameter("currentSeason") != null ? Integer.valueOf(request.getParameter("currentSeason")) : lastSeason;
- ObservationSite observationSite = SessionControllerGetter.getAppleFruitMothBean().getObservationSite(observationSiteId);
+ ObservationSite observationSite = appleFruitMothBean.getObservationSite(observationSiteId);
request.setAttribute("observationSite", observationSite);
if(observationSite != null)
{
@@ -164,7 +171,7 @@ public class AppleFruitMothController extends HttpServlet {
{
Integer observationSiteId = Integer.valueOf(request.getParameter("observationSiteId"));
- ObservationSite observationSite = SessionControllerGetter.getAppleFruitMothBean().getObservationSite(observationSiteId);
+ ObservationSite observationSite = appleFruitMothBean.getObservationSite(observationSiteId);
if(observationSite != null)
{
FormValidation formValidation = FormValidator.validateForm("appleFruitMothStationForm", request, getServletContext());
@@ -186,7 +193,7 @@ public class AppleFruitMothController extends HttpServlet {
ossc.setThousandBerrySample( !formValidation.getFormField("thousandBerrySample").isEmpty() ? formValidation.getFormField("thousandBerrySample").getValueAsDouble(): null);
ossc.setRemarks(formValidation.getFormField("remarks") != null ? formValidation.getFormField("remarks").getWebValue() : "");
observationSite.getObservationSiteSeasonCommonDataSet().add(ossc);
- SessionControllerGetter.getAppleFruitMothBean().storeObservationSite(observationSite);
+ appleFruitMothBean.storeObservationSite(observationSite);
// Redirect to form
response.sendRedirect(new StringBuilder(Globals.PROTOCOL + "://")
@@ -219,7 +226,7 @@ public class AppleFruitMothController extends HttpServlet {
cal.setTime(SystemTime.getSystemTime());
Integer lastSeason = cal.get(Calendar.YEAR);
Integer currentSeason = request.getParameter("currentSeason") != null ? Integer.valueOf(request.getParameter("currentSeason")) : lastSeason;
- ObservationSite observationSite = SessionControllerGetter.getAppleFruitMothBean().getObservationSite(observationSiteId);
+ ObservationSite observationSite = appleFruitMothBean.getObservationSite(observationSiteId);
Map<String, ObservationSitePointSeasonData> treeData = new HashMap<>();
Integer grossClusterAutumnSum = 0;
@@ -282,13 +289,13 @@ public class AppleFruitMothController extends HttpServlet {
}
Integer observationSiteId = Integer.valueOf(request.getParameter("observationSiteId"));
- ObservationSite observationSite = SessionControllerGetter.getAppleFruitMothBean().getObservationSite(observationSiteId);
+ ObservationSite observationSite = appleFruitMothBean.getObservationSite(observationSiteId);
ObservationSiteSeasonCommonData seasonCommonData = observationSite.getCommonDataForSeason(currentSeason);
if(seasonCommonData != null)
{
seasonCommonData.setRemarks(request.getParameter("remarks") != null ? request.getParameter("remarks") : "");
- SessionControllerGetter.getAppleFruitMothBean().storeObservationSitePointSeasonCommonData(seasonCommonData);
+ appleFruitMothBean.storeObservationSitePointSeasonCommonData(seasonCommonData);
}
//System.out.println("sitePointSetLength=" + observationSite.getObservationSitePointSet().size());
treeNames.stream().forEach(treeName->{
@@ -298,7 +305,7 @@ public class AppleFruitMothController extends HttpServlet {
.findFirst()
// Need to use orElseGet instead of orElse, otherwise
// a new sitePoint will be created each time
- .orElseGet(()-> SessionControllerGetter.getAppleFruitMothBean().storeObservationSitePoint(new ObservationSitePoint(observationSite, treeName)));
+ .orElseGet(()-> appleFruitMothBean.storeObservationSitePoint(new ObservationSitePoint(observationSite, treeName)));
// TODO: Fill in the correct values from POST data, then store
//Set<ObservationSitePointSeasonData> dataSet = point.getObservationSitePointSeasonDataSet();
@@ -316,10 +323,10 @@ public class AppleFruitMothController extends HttpServlet {
newData.setSpringDate(springDate);
newData.setLastUpdated(new Date());
- SessionControllerGetter.getAppleFruitMothBean().storeObservationSitePointSeasonData(newData);
+ appleFruitMothBean.storeObservationSitePointSeasonData(newData);
//dataSet.add(newData);
//point.setObservationSitePointSeasonDataSet(dataSet);
- //SessionControllerGetter.getAppleFruitMothBean().storeObservationSitePoint(point);
+ //appleFruitMothBean.storeObservationSitePoint(point);
} catch (NullPointerException | ParseException ex) {
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
index bcc0d958222c07c70ec39899cf5efcdb9506da4d..d133c6548f13e65b93c31c691243a51eb4f5a910 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
@@ -22,6 +22,7 @@ package no.nibio.vips.logic.modules.applefruitmoth;
import com.webcohesion.enunciate.metadata.Facet;
import de.micromata.opengis.kml.v_2_2_0.Kml;
import java.util.Calendar;
+import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@@ -30,18 +31,20 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.util.ServletUtil;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Path("rest/applefruitmoth")
@Facet("restricted")
public class AppleFruitMothService {
+ @EJB
+ AppleFruitMothBean appleFruitMothBean;
+
@Context
private HttpServletRequest httpServletRequest;
@@ -67,7 +70,7 @@ public class AppleFruitMothService {
@QueryParam("onlyPubliclyAvailable") Boolean onlyPubliclyAvailable
)
{
- Kml retVal = SessionControllerGetter.getAppleFruitMothBean().getObservationSitesKml(season, selectedObservationSiteId, ServletUtil.getServerName(httpServletRequest), onlyPubliclyAvailable);
+ Kml retVal = appleFruitMothBean.getObservationSitesKml(season, selectedObservationSiteId, ServletUtil.getServerName(httpServletRequest), onlyPubliclyAvailable);
return Response.ok().entity(retVal).build();
}
@@ -76,7 +79,7 @@ public class AppleFruitMothService {
@Produces("application/vnd.google-earth.kml+xml;charset=utf-8")
public Response getObservationSitePointsKML(@PathParam("observationSiteId") Integer observationSiteId)
{
- Kml retVal = SessionControllerGetter.getAppleFruitMothBean().getObservationSitePointsKml(observationSiteId, ServletUtil.getServerName(httpServletRequest));
+ Kml retVal = appleFruitMothBean.getObservationSitePointsKml(observationSiteId, ServletUtil.getServerName(httpServletRequest));
return Response.ok().entity(retVal).build();
}*/
}
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
index 0e6fafc1e9005653ddbd95419960ba146050511c..c2abee5cf7c3abf5da9c614593e2f57ed7ea7952 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
@@ -30,7 +30,6 @@ import de.micromata.opengis.kml.v_2_2_0.Vec2;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -41,8 +40,6 @@ import java.util.stream.Collectors;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -53,10 +50,8 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import org.opengis.referencing.operation.TransformException;
-import no.nibio.vips.gis.GISUtil;
import no.nibio.vips.logic.util.GISEntityUtil;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
/**
* @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
@@ -67,6 +62,7 @@ import no.nibio.vips.logic.util.SessionControllerGetter;
public class BarkbeetleBean {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
/**
* Get the list of trapsites for the given season
@@ -123,25 +119,7 @@ public class BarkbeetleBean {
return em.find(TrapsiteType.class, trapsiteTypeId);
}
- /**
- * Util method for getting this bean through JNDI
- * @return
- */
- public static BarkbeetleBean getInstance()
- {
- try
- {
- InitialContext ic = new InitialContext();
- BarkbeetleBean retVal = (BarkbeetleBean) ic.lookup(SessionControllerGetter.getJndiPath(BarkbeetleBean.class));
-
- return retVal;
- }catch(NamingException ne)
- {
- System.out.println("Could not find " + BarkbeetleBean.class.getSimpleName());
- return null;
- }
- }
-
+
public List<TrapsiteRegistration> getRegistrationsForSite(SeasonTrapsite trapsite) {
return em.createNamedQuery("TrapsiteRegistration.findBySeasonTrapsiteId")
.setParameter("seasonTrapsiteId", trapsite.getSeasonTrapsiteId())
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java
index c888a0521b8486315043ed137c229eb26c5609e7..a4d78ce6edde36b58eeedce51208d4fded43e36e 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java
@@ -35,6 +35,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -42,6 +43,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.Response;
import no.nibio.vips.gis.GISUtil;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.VipsLogicRole;
import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.gis.CoordinateXYZ;
@@ -60,7 +62,13 @@ import org.locationtech.jts.geom.Point;
* @author Tor-Einar Skog <tor-einar.skog@bioforsk.no>
*/
public class BarkbeetleController extends HttpServlet {
-
+
+
+ @EJB
+ BarkbeetleBean barkbeetleBean;
+ @EJB
+ UserBean userBean;
+
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
@@ -72,19 +80,19 @@ public class BarkbeetleController extends HttpServlet {
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
VipsLogicUser user = (VipsLogicUser) request.getSession().getAttribute("user");
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.BARKBEETLE_REGISTRATOR, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.BARKBEETLE_REGISTRATOR, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
request.setAttribute("user",user);
- request.setAttribute("userIsAdmin",SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER));
- request.setAttribute("userIsCountyAdmin",SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN));
+ request.setAttribute("userIsAdmin",userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER));
+ request.setAttribute("userIsCountyAdmin",userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN));
Integer season = request.getParameter("season") != null? Integer.valueOf(request.getParameter("season"))
: LocalDate.ofInstant(SystemTime.getSystemTime().toInstant(),ZoneId.of("Europe/Oslo")).getYear();
String action = request.getParameter("action");
if(action == null)
{
- List<SeasonTrapsite> seasonTrapSites = BarkbeetleBean.getInstance().getSeasonTrapsites(season);
+ List<SeasonTrapsite> seasonTrapSites = barkbeetleBean.getSeasonTrapsites(season);
Collections.sort(seasonTrapSites);
- Integer firstAvailableSeason = BarkbeetleBean.getInstance().getFirstAvailableSeason();
+ Integer firstAvailableSeason = barkbeetleBean.getFirstAvailableSeason();
Integer lastAvailableSeason = Calendar.getInstance().get(Calendar.YEAR) + 1;
request.setAttribute("firstAvailableSeason", firstAvailableSeason);
request.setAttribute("lastAvailableSeason", lastAvailableSeason);
@@ -99,18 +107,18 @@ public class BarkbeetleController extends HttpServlet {
else if(action.equals("listSeasonTrapsitesStatus"))
{
request.setAttribute("season", season);
- Integer firstAvailableSeason = BarkbeetleBean.getInstance().getFirstAvailableSeason();
+ Integer firstAvailableSeason = barkbeetleBean.getFirstAvailableSeason();
Integer lastAvailableSeason = Calendar.getInstance().get(Calendar.YEAR) + 1;
request.setAttribute("firstAvailableSeason", firstAvailableSeason);
request.setAttribute("lastAvailableSeason", lastAvailableSeason);
- request.setAttribute("seasonTrapsites", BarkbeetleBean.getInstance().getSeasonTrapsites(season));
+ request.setAttribute("seasonTrapsites", barkbeetleBean.getSeasonTrapsites(season));
request.getRequestDispatcher("/modules/barkbeetle/barkbeetleSeasonTrapsitesStatus.ftl").forward(request, response);
}
else if(action.equals("seasonTrapsiteMaintenanceList"))
{
- List<SeasonTrapsite> seasonTrapSites = BarkbeetleBean.getInstance().getSeasonTrapsites(season);
+ List<SeasonTrapsite> seasonTrapSites = barkbeetleBean.getSeasonTrapsites(season);
Collections.sort(seasonTrapSites);
- Integer firstAvailableSeason = BarkbeetleBean.getInstance().getFirstAvailableSeason();
+ Integer firstAvailableSeason = barkbeetleBean.getFirstAvailableSeason();
Integer lastAvailableSeason = Calendar.getInstance().get(Calendar.YEAR) + 1;
request.setAttribute("firstAvailableSeason", firstAvailableSeason);
request.setAttribute("lastAvailableSeason", lastAvailableSeason);
@@ -121,18 +129,18 @@ public class BarkbeetleController extends HttpServlet {
else if(action.equals("editSeasonTrapsite"))
{
SeasonTrapsite trapsite = request.getParameter("seasonTrapsiteId") != null ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: new SeasonTrapsite();
// Only admins and designated registrants can edit the trapsite
- if(!SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
+ if(!userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
&& (trapsite != null && ! user.getUserId().equals(trapsite.getUserId().getUserId()))
)
{
response.sendError(403,"Access not authorized"); // HTTP Forbidden
}
- request.setAttribute("trapsiteRegistrators", SessionControllerGetter.getUserBean().getUsersByVipsLogicRoles(new Integer[]{VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_REGISTRATOR, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN}));
+ request.setAttribute("trapsiteRegistrators", userBean.getUsersByVipsLogicRoles(new Integer[]{VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_REGISTRATOR, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN}));
- List<TrapsiteType> trapsiteTypes = BarkbeetleBean.getInstance().getTrapsiteTypes();
+ List<TrapsiteType> trapsiteTypes = barkbeetleBean.getTrapsiteTypes();
request.setAttribute("season", request.getParameter("seasonTrapsiteId") != null ? trapsite.getSeason() : season);
request.setAttribute("seasonTrapsite", trapsite);
request.setAttribute("seasonTrapsiteTypes", trapsiteTypes);
@@ -142,9 +150,9 @@ public class BarkbeetleController extends HttpServlet {
else if(action.equals("seasonTrapsiteFormSubmit"))
{
SeasonTrapsite trapsite = (request.getParameter("seasonTrapsiteId") != null && Integer.valueOf(request.getParameter("seasonTrapsiteId")) > 0) ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: new SeasonTrapsite();
- if(!SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
+ if(!userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER)
&& (trapsite != null && ! user.getUserId().equals(trapsite.getUserId().getUserId()))
)
{
@@ -161,7 +169,7 @@ public class BarkbeetleController extends HttpServlet {
trapsite.setActivated(true);
}
trapsite.setSeason(formValidation.getFormField("season").getValueAsInteger());
- trapsite.setTrapsiteType(BarkbeetleBean.getInstance().getTrapsiteType(formValidation.getFormField("trapsiteTypeId").getValueAsInteger()));
+ trapsite.setTrapsiteType(barkbeetleBean.getTrapsiteType(formValidation.getFormField("trapsiteTypeId").getValueAsInteger()));
trapsite.setCountyNo(formValidation.getFormField("countyNo").isEmpty() ? null : formValidation.getFormField("countyNo").getValueAsInteger());
trapsite.setCountyName(formValidation.getFormField("countyName").getWebValue());
@@ -177,7 +185,7 @@ public class BarkbeetleController extends HttpServlet {
trapsite.setOwnerPhone(formValidation.getFormField("ownerPhone").getWebValue());
trapsite.setDateInstalled(formValidation.getFormField("dateInstalled").isEmpty() ? null : formValidation.getFormField("dateInstalled").getValueAsDate());
trapsite.setInstallationRemarks(formValidation.getFormField("installationRemarks").getWebValue());
- trapsite.setUserId(SessionControllerGetter.getUserBean().getVipsLogicUser(formValidation.getFormField("userId").getValueAsInteger()));
+ trapsite.setUserId(userBean.getVipsLogicUser(formValidation.getFormField("userId").getValueAsInteger()));
trapsite.setLocationUpdated(formValidation.getFormField("locationUpdated").getWebValue().equals("true"));
// Handling the GIS
@@ -193,7 +201,7 @@ public class BarkbeetleController extends HttpServlet {
Point p3d = gisUtil.createPointWGS84(coordinate);
trapsite.setGisGeom(p3d);
- trapsite = BarkbeetleBean.getInstance().storeSeasonTrapsite(trapsite);
+ trapsite = barkbeetleBean.storeSeasonTrapsite(trapsite);
// Redirect to form
response.sendRedirect(Globals.PROTOCOL + "://"
@@ -214,12 +222,12 @@ public class BarkbeetleController extends HttpServlet {
else if(action.equals("registerData"))
{
SeasonTrapsite trapsite = request.getParameter("seasonTrapsiteId") != null ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: null;
if(trapsite != null)
{
- request.setAttribute("userIsAdmin",SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER));
- request.setAttribute("userIsCountyAdmin",SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN));
+ request.setAttribute("userIsAdmin",userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER));
+ request.setAttribute("userIsCountyAdmin",userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN));
request.setAttribute("seasonTrapsite", trapsite);
request.setAttribute("isExtended", trapsite.getTrapsiteType().getTrapsiteTypeId().equals(TrapsiteType.TRAPSITE_TYPE_EXTENDED));
Set<Integer> missingWeeks = new HashSet<Integer>(trapsite.getTrapsiteType().getTrapsiteTypeId().equals(TrapsiteType.TRAPSITE_TYPE_STANDARD)?
@@ -247,7 +255,7 @@ public class BarkbeetleController extends HttpServlet {
WeekFields weekFields = WeekFields.of(norway);
request.setAttribute("currentWeek", LocalDate.ofInstant(SystemTime.getSystemTime().toInstant(),ZoneId.of("Europe/Oslo")).get(weekFields.weekOfWeekBasedYear()));
//request.setAttribute("currentWeek", 32); // TEST!
- request.setAttribute("registrationStatusTypes", BarkbeetleBean.getInstance().getRegistrationStatusTypes());
+ request.setAttribute("registrationStatusTypes", barkbeetleBean.getRegistrationStatusTypes());
request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/modules/barkbeetle/barkbeetleTrapsiteRegistrationForm.ftl").forward(request, response);
}
@@ -259,7 +267,7 @@ public class BarkbeetleController extends HttpServlet {
else if(action.equals("trapsiteRegistrationFormSubmit"))
{
SeasonTrapsite trapsite = request.getParameter("seasonTrapsiteId") != null ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: null;
if(trapsite != null)
@@ -307,11 +315,11 @@ public class BarkbeetleController extends HttpServlet {
registrations.add(tr);
}
}
- trapsite = BarkbeetleBean.getInstance().storeTrapsiteRegistrations(trapsite.getSeasonTrapsiteId(), registrations);
+ trapsite = barkbeetleBean.storeTrapsiteRegistrations(trapsite.getSeasonTrapsiteId(), registrations);
// Also, store the observedAttacksDescription on the SeasonTrapsite object
trapsite.setObservedAttacksDescription(request.getParameter("observedAttacksDescription"));
trapsite.setMaintenanceDescription(request.getParameter("maintenanceDescription"));
- BarkbeetleBean.getInstance().storeSeasonTrapsite(trapsite);
+ barkbeetleBean.storeSeasonTrapsite(trapsite);
// Redirect to form
response.sendRedirect(Globals.PROTOCOL + "://"
@@ -333,10 +341,10 @@ public class BarkbeetleController extends HttpServlet {
// Only admins can do this
else if(action.equals("seasonTrapsiteDeleteForm"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER))
{
SeasonTrapsite trapsite = request.getParameter("seasonTrapsiteId") != null ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: null;
if(trapsite != null)
@@ -360,16 +368,16 @@ public class BarkbeetleController extends HttpServlet {
// Only admins can do this
else if(action.equals("seasonTrapsiteDelete"))
{
- if(SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER))
+ if(userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.SUPERUSER))
{
try
{
SeasonTrapsite trapsite = request.getParameter("seasonTrapsiteId") != null ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: null;
- if(trapsite != null && BarkbeetleBean.getInstance().deleteSeasonTrapsite(trapsite.getSeasonTrapsiteId()))
+ if(trapsite != null && barkbeetleBean.deleteSeasonTrapsite(trapsite.getSeasonTrapsiteId()))
{
Integer siteSeason = trapsite.getSeason();
String redirectAction = request.getParameter("redirectAction") != null ? "&action=" + request.getParameter("redirectAction") : "";
@@ -397,9 +405,9 @@ public class BarkbeetleController extends HttpServlet {
}
else if(action.equals("listSeasonTrapsiteCandidates"))
{
- List<SeasonTrapsite> seasonTrapSiteCandidates = BarkbeetleBean.getInstance().getSeasonTrapsiteCandidates(season);
+ List<SeasonTrapsite> seasonTrapSiteCandidates = barkbeetleBean.getSeasonTrapsiteCandidates(season);
Collections.sort(seasonTrapSiteCandidates);
- Integer firstAvailableSeason = BarkbeetleBean.getInstance().getFirstAvailableSeason();
+ Integer firstAvailableSeason = barkbeetleBean.getFirstAvailableSeason();
Integer lastAvailableSeason = Calendar.getInstance().get(Calendar.YEAR) + 1;
request.setAttribute("firstAvailableSeason", firstAvailableSeason);
request.setAttribute("lastAvailableSeason", lastAvailableSeason);
@@ -410,19 +418,19 @@ public class BarkbeetleController extends HttpServlet {
}
else if(action.equals("activateSeasonTrapsite"))
{
- if(!SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(!userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.BARKBEETLE_COUNTY_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
response.sendError(403,"Access not authorized"); // HTTP Forbidden
}
SeasonTrapsite trapsite = request.getParameter("seasonTrapsiteId") != null ?
- BarkbeetleBean.getInstance().getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
+ barkbeetleBean.getSeasonTrapsite(Integer.valueOf(request.getParameter("seasonTrapsiteId")))
: null;
if(trapsite != null)
{
trapsite.setActivated(Boolean.TRUE);
- BarkbeetleBean.getInstance().storeSeasonTrapsite(trapsite);
+ barkbeetleBean.storeSeasonTrapsite(trapsite);
response.sendRedirect(Globals.PROTOCOL + "://"
+ ServletUtil.getServerName(request)
+ "/barkbeetle?action=listSeasonTrapsiteCandidates&messageKey=activateOK&season=" + trapsite.getSeason()
@@ -435,7 +443,7 @@ public class BarkbeetleController extends HttpServlet {
}
else if(action.equals("copySeasonTrapsites"))
{
- if(!SessionControllerGetter.getUserBean().authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
+ if(!userBean.authorizeUser(user, VipsLogicRole.BARKBEETLE_ADMIN, VipsLogicRole.ORGANIZATION_ADMINISTRATOR, VipsLogicRole.SUPERUSER))
{
response.sendError(403,"Access not authorized"); // HTTP Forbidden
}
@@ -443,7 +451,7 @@ public class BarkbeetleController extends HttpServlet {
{
Integer fromSeason = Integer.valueOf(request.getParameter("fromSeason"));
Integer toSeason = Integer.valueOf(request.getParameter("toSeason"));
- BarkbeetleBean.getInstance().copySeasonTrapsites(fromSeason, toSeason);
+ barkbeetleBean.copySeasonTrapsites(fromSeason, toSeason);
response.sendRedirect(Globals.PROTOCOL + "://"
+ ServletUtil.getServerName(request)
+ "/barkbeetle?action=listSeasonTrapsiteCandidates&season=" + toSeason
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java
index 21b7d3d4bf53567143861f69058655fdb41d348e..00c596228688af24ae5c6d35e13cc022ef814cfb 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleService.java
@@ -32,6 +32,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import com.webcohesion.enunciate.metadata.Facet;
+import javax.ejb.EJB;
import no.nibio.vips.util.ServletUtil;
@@ -47,6 +48,9 @@ public class BarkbeetleService {
@Context
private HttpServletRequest httpServletRequest;
+ @EJB
+ BarkbeetleBean barkbeetleBean;
+
@GET
@Path("seasontrapsites/{season}/kml")
@Produces("application/vnd.google-earth.kml+xml;charset=utf-8")
@@ -54,7 +58,7 @@ public class BarkbeetleService {
@PathParam("season") Integer season,
@QueryParam("excludeSeasonTrapsiteId") Integer excludeSeasonTrapsiteId)
{
- return Response.ok().entity(BarkbeetleBean.getInstance().getSeasonTrapsitesKml(season, excludeSeasonTrapsiteId, ServletUtil.getServerName(httpServletRequest))).build();
+ return Response.ok().entity(barkbeetleBean.getSeasonTrapsitesKml(season, excludeSeasonTrapsiteId, ServletUtil.getServerName(httpServletRequest))).build();
}
@GET
@@ -64,7 +68,7 @@ public class BarkbeetleService {
@PathParam("season") Integer season
)
{
- return Response.ok().entity(BarkbeetleBean.getInstance().getSeasonTrapsitesStatusKml(season, ServletUtil.getServerName(httpServletRequest))).build();
+ return Response.ok().entity(barkbeetleBean.getSeasonTrapsitesStatusKml(season, ServletUtil.getServerName(httpServletRequest))).build();
}
@GET
@@ -72,7 +76,7 @@ public class BarkbeetleService {
@Produces("text/csv")
public Response getSeasonTrapsitesReport(@PathParam("season") Integer season)
{
- String csv = BarkbeetleBean.getInstance().getSeasonTrapsitesReportCsv(season);
+ String csv = barkbeetleBean.getSeasonTrapsitesReportCsv(season);
return Response.ok().entity(csv).build();
}
@@ -82,7 +86,7 @@ public class BarkbeetleService {
//@Produces("text/plain")
public Response getSeasonCountyAverage(@PathParam("season") Integer season)
{
- String csv = BarkbeetleBean.getInstance().getCountyAverageCsv(season);
+ String csv = barkbeetleBean.getCountyAverageCsv(season);
return Response.ok().entity(csv).build();
}
@@ -91,7 +95,7 @@ public class BarkbeetleService {
@Produces("text/csv")
public Response getLatestBivoltCalculations(@PathParam("season") Integer season)
{
- String csv = BarkbeetleBean.getInstance().getLatestBivoltCalculations(season);
+ String csv = barkbeetleBean.getLatestBivoltCalculations(season);
return Response.ok().entity(csv).build();
}
@@ -108,7 +112,7 @@ public class BarkbeetleService {
@PathParam("isMaintenanceCompleted") String isMaintenanceCompleted
)
{
- BarkbeetleBean.getInstance().setMaintenanceCompleted(seasonTrapsiteId, isMaintenanceCompleted != null && isMaintenanceCompleted.equals("true"));
+ barkbeetleBean.setMaintenanceCompleted(seasonTrapsiteId, isMaintenanceCompleted != null && isMaintenanceCompleted.equals("true"));
return Response.ok().build();
}
}
diff --git a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java
index 3092f7625e3dea370f5cd8fbd5d3bd7993902377..5035869e92d710801be72e8e16ba37ca4c6de46b 100755
--- a/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barleynetblotch/BarleyNetBlotchModelService.java
@@ -25,6 +25,7 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -37,12 +38,12 @@ import javax.ws.rs.core.Response;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.Result;
import no.nibio.vips.entity.WeatherObservation;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.entity.Preparation;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.observation.ObservationImpl;
import no.nibio.vips.pestmanagement.SprayingImpl;
@@ -62,6 +63,9 @@ public class BarleyNetBlotchModelService {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ ForecastBean forecastBean;
@GET
@Path("barleyvarieties/{organizationId}")
@@ -246,7 +250,7 @@ public class BarleyNetBlotchModelService {
List<Result> results;
try
{
- results = SessionControllerGetter.getForecastBean().runForecast(config, VIPSCoreUserId);
+ results = forecastBean.runForecast(config, VIPSCoreUserId);
}
catch(RunModelException ex)
{
diff --git a/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java b/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java
index cea3b798f584c3b0b6ba60d8f704d607140d6745..14985497b24aa2cee00a56225310f10c58891101 100755
--- a/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/roughage/RoughageService.java
@@ -31,6 +31,7 @@ import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -44,6 +45,7 @@ import javax.ws.rs.core.Response;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.Result;
import no.nibio.vips.entity.WeatherObservation;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.util.RunModelException;
@@ -59,10 +61,9 @@ import no.nibio.vips.util.weather.WeatherDataSourceException;
import no.nibio.vips.util.weather.WeatherDataSourceUtil;
import no.nibio.vips.util.weather.WeatherForecastProvider;
import no.nibio.vips.util.weather.WeatherStationProviderFactory;
-import no.nibio.vips.util.weather.YrWeatherForecastProvider;
/**
- * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2015-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Path("rest/roughage")
@@ -73,6 +74,9 @@ public class RoughageService {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ ForecastBean forecastBean;
+
/**
* Temporary hack to get correct normal data weather stations
* @return
@@ -387,7 +391,7 @@ public class RoughageService {
List<Result> results;
try
{
- results = SessionControllerGetter.getForecastBean().runForecast(config, VIPSCoreUserId);
+ results = forecastBean.runForecast(config, VIPSCoreUserId);
}
catch(RunModelException ex)
{
@@ -458,7 +462,7 @@ public class RoughageService {
List<Result> normalDataResults;
try
{
- normalDataResults = SessionControllerGetter.getForecastBean().runForecast(config, VIPSCoreUserId);
+ normalDataResults = forecastBean.runForecast(config, VIPSCoreUserId);
}
catch(RunModelException ex)
{
@@ -559,7 +563,7 @@ public class RoughageService {
Organization org = em.find(Organization.class, organizationId);
Integer VIPSCoreUserId = org.getDefaultVipsCoreUserId();
- results = SessionControllerGetter.getForecastBean().runForecast(modelConfig, VIPSCoreUserId);
+ results = forecastBean.runForecast(modelConfig, VIPSCoreUserId);
} catch (WeatherDataSourceException | RunModelException ex) {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(ex.getMessage()).build();
diff --git a/src/main/java/no/nibio/vips/logic/modules/wheatleafblotch/WheatLeafBlotchModelService.java b/src/main/java/no/nibio/vips/logic/modules/wheatleafblotch/WheatLeafBlotchModelService.java
index 839c93cf0ac2375aeee6e0f779b428e7ae411606..77208990a6b33385ef4bb6cceb5092dc8f0f72cd 100644
--- a/src/main/java/no/nibio/vips/logic/modules/wheatleafblotch/WheatLeafBlotchModelService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/wheatleafblotch/WheatLeafBlotchModelService.java
@@ -25,6 +25,7 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -37,12 +38,12 @@ import javax.ws.rs.core.Response;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.Result;
import no.nibio.vips.entity.WeatherObservation;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.entity.Preparation;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.observation.ObservationImpl;
import no.nibio.vips.pestmanagement.SprayingImpl;
@@ -52,7 +53,7 @@ import no.nibio.vips.util.weather.WeatherDataSourceException;
import no.nibio.vips.util.weather.WeatherDataSourceUtil;
/**
- * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2018-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Path("rest/wheatleafblotchmodel")
@@ -62,6 +63,9 @@ public class WheatLeafBlotchModelService {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+
+ @EJB
+ ForecastBean forecastBean;
@GET
@Path("wheatvarieties/{organizationId}")
@@ -351,7 +355,7 @@ public class WheatLeafBlotchModelService {
List<Result> results;
try
{
- results = SessionControllerGetter.getForecastBean().runForecast(config, VIPSCoreUserId);
+ results = forecastBean.runForecast(config, VIPSCoreUserId);
}
catch(RunModelException ex)
{
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/TaskLoggerSchedulerListener.java b/src/main/java/no/nibio/vips/logic/scheduling/TaskLoggerSchedulerListener.java
index 67c24f22d8a41a0184c3b1b35cc15959c88aa6a7..51c4382d3b237f2f863d9ce2bb34b6af099758f5 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/TaskLoggerSchedulerListener.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/TaskLoggerSchedulerListener.java
@@ -21,30 +21,33 @@ package no.nibio.vips.logic.scheduling;
import it.sauronsoftware.cron4j.SchedulerListener;
import it.sauronsoftware.cron4j.TaskExecutor;
-import no.nibio.vips.logic.util.SessionControllerGetter;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.SchedulingBean;
/**
* Logs task events to the database
- * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class TaskLoggerSchedulerListener implements SchedulerListener{
+ @EJB
+ SchedulingBean schedulingBean;
@Override
public void taskLaunching(TaskExecutor te) {
- SessionControllerGetter.getSchedulingBean().logTaskLaunching(te);
+ schedulingBean.logTaskLaunching(te);
}
@Override
public void taskSucceeded(TaskExecutor te) {
- SessionControllerGetter.getSchedulingBean().logTaskSucceeded(te);
+ schedulingBean.logTaskSucceeded(te);
}
@Override
public void taskFailed(TaskExecutor te, Throwable thrwbl) {
- SessionControllerGetter.getSchedulingBean().logTaskFailed(te,thrwbl);
+ schedulingBean.logTaskFailed(te,thrwbl);
}
}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java b/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java
index 273f7e4fa534d18507dedbf39ba99850449cbabb..59add8bae6d933961fe30b15abda8274d6327a75 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/TerminateSchedulerListener.java
@@ -22,16 +22,19 @@ package no.nibio.vips.logic.scheduling;
import it.sauronsoftware.cron4j.Scheduler;
import it.sauronsoftware.cron4j.SchedulerListener;
import it.sauronsoftware.cron4j.TaskExecutor;
+import javax.ejb.EJB;
import no.nibio.vips.logic.controller.session.SchedulingBean;
-import no.nibio.vips.logic.util.SessionControllerGetter;
/**
* Add this listener to a scheduler if you want it the scheduler to terminate
* after a task has completed
- * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class TerminateSchedulerListener implements SchedulerListener{
+
+ @EJB
+ SchedulingBean schedulingBean;
@Override
public void taskLaunching(TaskExecutor te) {
@@ -57,7 +60,6 @@ public class TerminateSchedulerListener implements SchedulerListener{
private void terminateScheduler(Scheduler scheduler)
{
scheduler.stop();
- SchedulingBean schedulingBean = SessionControllerGetter.getSchedulingBean();
schedulingBean.getOneOffSchedulers().remove(scheduler);
scheduler = null;
}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
index 56c591f0307468b50ef91b2840ba2de2caf7cd66..6e68fa6b58431719aa9b93b60bef96bd7b775775 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/grid/preprocessor/ZymoseptoriaSimpleRiskGridModelPreprocessor.java
@@ -19,27 +19,26 @@
package no.nibio.vips.logic.scheduling.model.grid.preprocessor;
-import org.locationtech.jts.geom.Coordinate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import javax.ejb.EJB;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.PointWeatherObservationList;
import no.nibio.vips.entity.WeatherObservation;
import no.nibio.vips.gis.CoordinateProxy;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.scheduling.model.ModelRunPreprocessor;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.util.WeatherElements;
import no.nibio.vips.util.WeatherObservationListException;
@@ -48,10 +47,13 @@ import no.nibio.vips.util.weather.WeatherDataSourceException;
import no.nibio.vips.util.weather.WeatherDataSourceUtil;
/**
- * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2018-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class ZymoseptoriaSimpleRiskGridModelPreprocessor extends ModelRunPreprocessor{
+
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
@Override
public ModelConfiguration getModelConfiguration(ForecastConfiguration configuration) throws PreprocessorException {
@@ -60,7 +62,7 @@ public class ZymoseptoriaSimpleRiskGridModelPreprocessor extends ModelRunPreproc
// Which weather stations??
// Ilseng and Apelsvoll to start with ;-)
List<PointOfInterestWeatherStation> stations = Stream.of(configuration.getGridWeatherStationPointOfInterestIds()).map(
- stationId -> (PointOfInterestWeatherStation) SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(stationId)
+ stationId -> (PointOfInterestWeatherStation) pointOfInterestBean.getPointOfInterest(stationId)
).collect(Collectors.toList());
List<PointWeatherObservationList> allObs = new ArrayList<>();
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java
index 3ff54e4be9fd052b98124645378a67d6542ea4d5..af43dc78fbade7a9faa5512708d4d84d7199e19d 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/AltenariaModelPreprocessor.java
@@ -32,13 +32,14 @@ import java.util.List;
import java.util.TimeZone;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.ejb.EJB;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.WeatherObservation;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.scheduling.model.ModelRunPreprocessor;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.model.ConfigValidationException;
import no.nibio.vips.util.WeatherElements;
@@ -49,10 +50,15 @@ import no.nibio.vips.util.weather.WeatherDataSourceUtil;
/**
*
- * @author bhabesh
+ * @author Bhabesh Mukhopadyay
+ * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
-public class AltenariaModelPreprocessor extends ModelRunPreprocessor{
- public final Logger LOGGER = Logger.getLogger(this.getClass().getName());
+public class AltenariaModelPreprocessor extends ModelRunPreprocessor {
+
+ @EJB
+ ForecastBean forecastBean;
+
+ public final Logger LOGGER = Logger.getLogger(this.getClass().getName());
private final boolean DEBUG = false;
/**
@@ -62,15 +68,15 @@ public class AltenariaModelPreprocessor extends ModelRunPreprocessor{
*
* purpose :
*
- * date : Expression date is undefined on line 20, column 19 in Templates/Classes/Code/GeneratedMethodBody. Expression time is undefined on line 20, column 27 in Templates/Classes/Code/GeneratedMethodBody.
+ * date :
*/
@Override
public ModelConfiguration getModelConfiguration(ForecastConfiguration configuration) throws PreprocessorException
{
- String ALTERNARIA_SPRAYING_DATES_01 = SessionControllerGetter.getForecastBean().getDeCamelizedFieldName("ALTERNARIA", "sprayingDate01");
- String ALTERNARIA_SPRAYING_DATES_02 = SessionControllerGetter.getForecastBean().getDeCamelizedFieldName("ALTERNARIA", "sprayingDate02");
- String ALTERNARIA_SPRAYING_DATES_03 = SessionControllerGetter.getForecastBean().getDeCamelizedFieldName("ALTERNARIA", "sprayingDate03");
- String ALTERNARIA_SPRAYING_DATES_04 = SessionControllerGetter.getForecastBean().getDeCamelizedFieldName("ALTERNARIA", "sprayingDate04");
+ String ALTERNARIA_SPRAYING_DATES_01 = forecastBean.getDeCamelizedFieldName("ALTERNARIA", "sprayingDate01");
+ String ALTERNARIA_SPRAYING_DATES_02 = forecastBean.getDeCamelizedFieldName("ALTERNARIA", "sprayingDate02");
+ String ALTERNARIA_SPRAYING_DATES_03 = forecastBean.getDeCamelizedFieldName("ALTERNARIA", "sprayingDate03");
+ String ALTERNARIA_SPRAYING_DATES_04 = forecastBean.getDeCamelizedFieldName("ALTERNARIA", "sprayingDate04");
String paramConfigValue = null;
List<Date> lstSprayingDates = new ArrayList(){};
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java
index 4874b52ec5d8f7ccf32df84de4562644c2b42a7e..ccada9b3190ad0d67a615eb117466941b335e26b 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/DeliaRadicumFloralisModelPreprocessor.java
@@ -25,7 +25,10 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import javax.ejb.EJB;
import no.nibio.vips.entity.ModelConfiguration;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.PointOfInterest;
@@ -42,6 +45,11 @@ import no.nibio.vips.util.WeatherUtil;
*/
public class DeliaRadicumFloralisModelPreprocessor extends ModelRunPreprocessor{
public final static String START_DATE_GROWTH = "START_DATE_GROWTH";
+
+ @EJB
+ OrganismBean organismBean;
+ @EJB
+ ObservationBean observationBean;
@Override
public ModelConfiguration getModelConfiguration(ForecastConfiguration configuration) throws PreprocessorException {
@@ -78,8 +86,8 @@ public class DeliaRadicumFloralisModelPreprocessor extends ModelRunPreprocessor{
Date endDateCalculation = wUtil.normalizeToExactDate(SystemTime.getSystemTime(),timeZone);
config.setConfigParameter("endDateCalculation", format.format(endDateCalculation));
- Organism organism = SessionControllerGetter.getOrganismBean().getOrganismByLatinName("Delia floralis/radicum");
- List<Observation> pestObservations = SessionControllerGetter.getObservationBean().getObservations(organism.getOrganismId(), location.getPointOfInterestId(),startDateGrowth,SystemTime.getSystemTime());
+ Organism organism = organismBean.getOrganismByLatinName("Delia floralis/radicum");
+ List<Observation> pestObservations = observationBean.getObservations(organism.getOrganismId(), location.getPointOfInterestId(),startDateGrowth,SystemTime.getSystemTime());
config.setConfigParameter("pestObservations", pestObservations);
config.setModelId(this.getModelId());
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java
index 328a00ad30be089684b9020f61d4c4f9a2e01393..4c9fd377ba7173d932db986306e0a122aea1f160 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/PsilaRosaeObservationModelPreprocessor.java
@@ -19,29 +19,34 @@
package no.nibio.vips.logic.scheduling.model.preprocessor;
-import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import javax.ejb.EJB;
import no.nibio.vips.entity.ModelConfiguration;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.PointOfInterest;
import no.nibio.vips.logic.scheduling.model.ModelRunPreprocessor;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.observation.Observation;
import no.nibio.vips.util.WeatherUtil;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class PsilaRosaeObservationModelPreprocessor extends ModelRunPreprocessor{
+ @EJB
+ OrganismBean organismBean;
+ @EJB
+ ObservationBean observationBean;
+
@Override
public ModelConfiguration getModelConfiguration(ForecastConfiguration configuration) throws PreprocessorException {
ModelConfiguration config = null;
@@ -61,8 +66,8 @@ public class PsilaRosaeObservationModelPreprocessor extends ModelRunPreprocessor
Date endDateCalculation = wUtil.normalizeToExactDate(SystemTime.getSystemTime(),timeZone);
config.setConfigParameter("endDateCalculation", format.format(endDateCalculation));
- Organism organism = SessionControllerGetter.getOrganismBean().getOrganismByLatinName("Psila rosae");
- List<Observation> pestObservations = SessionControllerGetter.getObservationBean().getObservations(organism.getOrganismId(), location.getPointOfInterestId(),configuration.getDateStart(),SystemTime.getSystemTime());
+ Organism organism = organismBean.getOrganismByLatinName("Psila rosae");
+ List<Observation> pestObservations = observationBean.getObservations(organism.getOrganismId(), location.getPointOfInterestId(),configuration.getDateStart(),SystemTime.getSystemTime());
config.setConfigParameter("pestObservations", pestObservations);
config.setModelId(this.getModelId());
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java
index 1e3e21a59aeb95ae3a7393ad25e347d7c78086c6..a843aa45ef083dfed3a819203b2058ddb3f2734b 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaApiicolaModelPreprocessor.java
@@ -26,31 +26,37 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.WeatherObservation;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.PointOfInterest;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.scheduling.model.ModelRunPreprocessor;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.model.ConfigValidationException;
import no.nibio.vips.observation.Observation;
import no.nibio.vips.util.WeatherElements;
import no.nibio.vips.util.WeatherObservationListException;
import no.nibio.vips.util.WeatherUtil;
-import no.nibio.vips.util.XDate;
import no.nibio.vips.util.weather.WeatherDataSourceException;
import no.nibio.vips.util.weather.WeatherDataSourceUtil;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class SeptoriaApiicolaModelPreprocessor extends ModelRunPreprocessor {
+ @EJB
+ OrganismBean organismBean;
+ @EJB
+ ObservationBean observationBean;
+
@Override
public ModelConfiguration getModelConfiguration(ForecastConfiguration configuration) throws PreprocessorException {
@@ -59,9 +65,9 @@ public class SeptoriaApiicolaModelPreprocessor extends ModelRunPreprocessor {
PointOfInterestWeatherStation weatherStation = (PointOfInterestWeatherStation) configuration.getWeatherStationPointOfInterestId();
config = new ModelConfiguration();
- Organism organism = SessionControllerGetter.getOrganismBean().getOrganismByLatinName("Septoria apiicola");
+ Organism organism = organismBean.getOrganismByLatinName("Septoria apiicola");
//System.out.println(organism);
- List<Observation> pestObservations = SessionControllerGetter.getObservationBean().getObservations(organism.getOrganismId(), location.getPointOfInterestId(),configuration.getDateStart(),SystemTime.getSystemTime());
+ List<Observation> pestObservations = observationBean.getObservations(organism.getOrganismId(), location.getPointOfInterestId(),configuration.getDateStart(),SystemTime.getSystemTime());
//System.out.println("Found " + pestObservations + " observations");
WeatherDataSourceUtil wdsUtil = new WeatherDataSourceUtil();
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java
index 643fba3ecba5c7964f6f7e1e1cdd0dbe0539c1f3..0cfc5a1382257c08fb70efc4298c9f9f86ba3cf3 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/model/preprocessor/SeptoriaHumidityModelPreprocessor.java
@@ -26,6 +26,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+import javax.ejb.EJB;
import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.WeatherObservation;
import no.nibio.vips.logic.controller.session.ForecastBean;
@@ -33,21 +34,22 @@ import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.scheduling.model.ModelRunPreprocessor;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.util.WeatherElements;
import no.nibio.vips.util.weather.WeatherDataSourceException;
import no.nibio.vips.util.weather.WeatherDataSourceUtil;
/**
- * @copyright 2019 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2019-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class SeptoriaHumidityModelPreprocessor extends ModelRunPreprocessor{
+ @EJB
+ ForecastBean forecastBean;
+
@Override
public ModelConfiguration getModelConfiguration(ForecastConfiguration configuration) throws PreprocessorException
{
- ForecastBean forecastBean = SessionControllerGetter.getForecastBean();
ModelConfiguration retVal = new ModelConfiguration();
retVal.setModelId(this.getModelId());
retVal.setConfigParameter("timeZone", configuration.getTimeZone());
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java
index 7d2b3d3325d046d02c3a7cb23b7d08af724436a5..6def8cce1611a40eb25f00640829505e87d8bb0c 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/DeleteAllExpiredUserUuidsTask.java
@@ -20,16 +20,18 @@
package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
-import no.nibio.vips.logic.scheduling.VipsLogicTaskFactory;
-import no.nibio.vips.logic.util.SessionControllerGetter;
-import no.nibio.web.forms.FormField;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class DeleteAllExpiredUserUuidsTask extends VipsLogicTask{
+
+ @EJB
+ UserBean userBean;
@Override
public String getConfigFormDefinition(String language) {
@@ -39,7 +41,7 @@ public class DeleteAllExpiredUserUuidsTask extends VipsLogicTask{
@Override
public void execute(TaskExecutionContext tec) throws RuntimeException {
tec.setCompleteness(0d);
- SessionControllerGetter.getUserBean().deleteAllExpiredUserUuids();
+ userBean.deleteAllExpiredUserUuids();
tec.setCompleteness(1d);
}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java
index eebc9e72cc8ca03b9f94c2809f7a0e7ff89bcfaa..52592004f66dba866dab5cf086a8aa8eddda27a1 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsForOrganizationTask.java
@@ -23,7 +23,11 @@ import it.sauronsoftware.cron4j.TaskExecutionContext;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import javax.ejb.EJB;
import no.nibio.vips.i18n.I18nImpl;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.ModelInformation;
import no.nibio.vips.logic.entity.PointOfInterest;
@@ -31,7 +35,6 @@ import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.scheduling.SchedulingUtil;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.web.forms.FormField;
@@ -40,6 +43,14 @@ import no.nibio.web.forms.FormField;
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class RunAllForecastConfigurationsForOrganizationTask extends RunAllForecastConfigurationsTask{
+
+ @EJB
+ UserBean userBean;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+
private I18nImpl i18n;
//private boolean DEBUG=true;
@Override
@@ -57,9 +68,9 @@ public class RunAllForecastConfigurationsForOrganizationTask extends RunAllForec
StringBuilder errorMessage = new StringBuilder();
// Get all organizations, loop, get all current forecasts, loop, run models, store results
boolean noForecastConfigurationsFound = true;
- Map<String, ModelInformation> modelInformationMap = SessionControllerGetter.getForecastBean().getIndexedBatchableModelInformation();
+ Map<String, ModelInformation> modelInformationMap = forecastBean.getIndexedBatchableModelInformation();
- List<ForecastConfiguration> currentForecastConfigurations = SessionControllerGetter.getForecastBean().getForecastConfigurationsValidAtTime(this.getOrganization(), SystemTime.getSystemTime());
+ List<ForecastConfiguration> currentForecastConfigurations = forecastBean.getForecastConfigurationsValidAtTime(this.getOrganization(), SystemTime.getSystemTime());
//System.out.println("Current forecasts for " + organization.getOrganizationName() + ":" + currentForecastConfigurations.size());
if(currentForecastConfigurations != null && !currentForecastConfigurations.isEmpty())
{
@@ -75,7 +86,7 @@ public class RunAllForecastConfigurationsForOrganizationTask extends RunAllForec
try
{
totalNumberofForecastConfigurations++;
- SessionControllerGetter.getForecastBean().runForecast(forecastConfiguration);
+ forecastBean.runForecast(forecastConfiguration);
/*
if(DEBUG && totalNumberofForecastConfigurations == 2)
{
@@ -130,7 +141,7 @@ public class RunAllForecastConfigurationsForOrganizationTask extends RunAllForec
.append("\",\"selected\":")
.append("false")
.append("}\n");
- List<PointOfInterestWeatherStation> stations = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(this.getOrganization(), Boolean.TRUE);
+ List<PointOfInterestWeatherStation> stations = pointOfInterestBean.getWeatherstationsForOrganization(this.getOrganization(), Boolean.TRUE);
Collections.sort(stations);
for(PointOfInterest station:stations)
{
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java
index 1a057da43767ec296470e3242448b463fbd2fd2e..20bb66066108a7b01883e8c49bbc648e39acbcff 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunAllForecastConfigurationsTask.java
@@ -24,7 +24,11 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import javax.ejb.EJB;
import no.nibio.vips.i18n.I18nImpl;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.ModelInformation;
import no.nibio.vips.logic.entity.Organization;
@@ -34,15 +38,22 @@ import no.nibio.vips.logic.scheduling.SchedulingUtil;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.web.forms.FormField;
/**
- * @copyright 2013-2018 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class RunAllForecastConfigurationsTask extends VipsLogicTask{
+
+ @EJB
+ UserBean userBean;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+
private I18nImpl i18n;
//private boolean DEBUG=true;
@Override
@@ -57,7 +68,7 @@ public class RunAllForecastConfigurationsTask extends VipsLogicTask{
// The config could come from a form
if(this.getConfiguration() != null && this.getConfiguration().get("organizationId") != null)
{
- this.setOrganization(SessionControllerGetter.getUserBean().getOrganization(Integer.valueOf(this.getConfiguration().get("organizationId")[0])));
+ this.setOrganization(userBean.getOrganization(Integer.valueOf(this.getConfiguration().get("organizationId")[0])));
}
List<Organization> organizations = new ArrayList<>();
@@ -67,7 +78,7 @@ public class RunAllForecastConfigurationsTask extends VipsLogicTask{
}
else
{
- organizations = SessionControllerGetter.getUserBean().getOrganizations();
+ organizations = userBean.getOrganizations();
}
tec.setCompleteness(0d);
int totalNumberofForecastConfigurations = 0;
@@ -76,11 +87,11 @@ public class RunAllForecastConfigurationsTask extends VipsLogicTask{
// Get all organizations, loop, get all current forecasts, loop, run models, store results
boolean noForecastConfigurationsFound = true;
- Map<String, ModelInformation> modelInformationMap = SessionControllerGetter.getForecastBean().getIndexedBatchableModelInformation();
+ Map<String, ModelInformation> modelInformationMap = forecastBean.getIndexedBatchableModelInformation();
for(Organization organization : organizations)
{
- List<ForecastConfiguration> currentForecastConfigurations = SessionControllerGetter.getForecastBean().getForecastConfigurationsValidAtTime(organization, SystemTime.getSystemTime());
+ List<ForecastConfiguration> currentForecastConfigurations = forecastBean.getForecastConfigurationsValidAtTime(organization, SystemTime.getSystemTime());
//System.out.println("Current forecasts for " + organization.getOrganizationName() + ":" + currentForecastConfigurations.size());
if(currentForecastConfigurations != null && !currentForecastConfigurations.isEmpty())
{
@@ -97,7 +108,7 @@ public class RunAllForecastConfigurationsTask extends VipsLogicTask{
{
totalNumberofForecastConfigurations++;
//System.out.println("Running forecast #" + forecastConfiguration.getForecastConfigurationId());
- SessionControllerGetter.getForecastBean().runForecast(forecastConfiguration);
+ forecastBean.runForecast(forecastConfiguration);
/*
if(DEBUG && totalNumberofForecastConfigurations == 2)
{
@@ -191,7 +202,7 @@ public class RunAllForecastConfigurationsTask extends VipsLogicTask{
.append("\",\"selected\":")
.append("false")
.append("}\n");
- List<PointOfInterestWeatherStation> stations = SessionControllerGetter.getPointOfInterestBean().getAllWeatherStations();
+ List<PointOfInterestWeatherStation> stations = pointOfInterestBean.getAllWeatherStations();
Collections.sort(stations);
for(PointOfInterest station:stations)
{
@@ -222,7 +233,7 @@ public class RunAllForecastConfigurationsTask extends VipsLogicTask{
.append("\",\"selected\":")
.append("false")
.append("}\n");
- List<Organization> organizations = SessionControllerGetter.getUserBean().getOrganizations();
+ List<Organization> organizations = userBean.getOrganizations();
//Collections.sort(organizations);
for(Organization organization:organizations)
{
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java
index b17f0353943734d7f160a1ee827e3165121b5f77..a0a4a639befdf15813041efa20aa5de73ed9cdd7 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunForecastConfigurationsByIdTask.java
@@ -21,14 +21,16 @@ package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
import java.util.Map;
+import javax.ejb.EJB;
import no.nibio.vips.i18n.I18nImpl;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.ModelInformation;
import no.nibio.vips.logic.scheduling.SchedulingUtil;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.web.forms.FormField;
/**
@@ -36,6 +38,12 @@ import no.nibio.web.forms.FormField;
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class RunForecastConfigurationsByIdTask extends VipsLogicTask{
+
+ @EJB
+ UserBean userBean;
+ @EJB
+ ForecastBean forecastBean;
+
private I18nImpl i18n;
//private boolean DEBUG=true;
@Override
@@ -57,16 +65,16 @@ public class RunForecastConfigurationsByIdTask extends VipsLogicTask{
Integer numberOfAttemptedForecastConfigurations = 0;
Integer numberOfCompletedForecastConfigurations = 0;
Boolean noForecastConfigurationsFound = forecastConfigurationIds.length == 0;
- Map<String, ModelInformation> modelInformationMap = SessionControllerGetter.getForecastBean().getIndexedBatchableModelInformation();
+ Map<String, ModelInformation> modelInformationMap = forecastBean.getIndexedBatchableModelInformation();
for(String forecastConfigurationId:forecastConfigurationIds)
{
noForecastConfigurationsFound = false;
- ForecastConfiguration forecastConfiguration = SessionControllerGetter.getForecastBean().getForecastConfiguration(Long.valueOf(forecastConfigurationId));
+ ForecastConfiguration forecastConfiguration = forecastBean.getForecastConfiguration(Long.valueOf(forecastConfigurationId));
try
{
numberOfAttemptedForecastConfigurations++;
//System.out.println("Running forecast #" + forecastConfiguration.getForecastConfigurationId());
- SessionControllerGetter.getForecastBean().runForecast(forecastConfiguration);
+ forecastBean.runForecast(forecastConfiguration);
/*
if(DEBUG && totalNumberofForecastConfigurations == 2)
{
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java
index 9112bc96d04e67ef168642afcdde895388095429..1aee3407f518a41efae07f78c5aed3d7e0e036a3 100644
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/RunGridModelsTask.java
@@ -20,18 +20,22 @@
package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.scheduling.SchedulingUtil;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
/**
- * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2018-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class RunGridModelsTask extends VipsLogicTask{
+
+ @EJB
+ ForecastBean forecastBean;
@Override
public String getConfigFormDefinition(String language) {
@@ -44,11 +48,11 @@ public class RunGridModelsTask extends VipsLogicTask{
//ZymoseptoriaSimpleRiskGridModelPreprocessor pp = new ZymoseptoriaSimpleRiskGridModelPreprocessor();
// TODO: Must find a forecast configuration id! -1000 !
- ForecastConfiguration fConfig = SessionControllerGetter.getForecastBean().getForecastConfiguration(-1000l);
+ ForecastConfiguration fConfig = forecastBean.getForecastConfiguration(-1000l);
try
{
- SessionControllerGetter.getForecastBean().runForecast(fConfig);
+ forecastBean.runForecast(fConfig);
tec.setCompleteness(1.0);
}
catch(PreprocessorException | RunModelException ex)
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java
index 36ec8983f5b8089ea935701543472b1986a7fb61..a62cc6888c925642349870d7841704327f1fe507 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/SendForecastEventNotificationsTask.java
@@ -20,16 +20,18 @@
package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.messaging.MessagingBean;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
-import no.nibio.vips.logic.scheduling.VipsLogicTaskFactory;
-import no.nibio.vips.logic.util.SessionControllerGetter;
-import no.nibio.web.forms.FormField;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class SendForecastEventNotificationsTask extends VipsLogicTask {
+
+ @EJB
+ MessagingBean messagingBean;
@Override
public String getConfigFormDefinition(String language) {
@@ -39,7 +41,7 @@ public class SendForecastEventNotificationsTask extends VipsLogicTask {
@Override
public void execute(TaskExecutionContext tec) throws RuntimeException {
tec.setCompleteness(0d);
- SessionControllerGetter.getMessagingBean().sendForecastEventNotifications();
+ messagingBean.sendForecastEventNotifications();
tec.setCompleteness(1d);
}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java
index d3c48a4a35c5f71f729c5fde5cc1333dd1d2ac3d..3ad93b4ee9e224837bac633cbdc9ef40ce1746a3 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastResultCacheTableTask.java
@@ -20,16 +20,17 @@
package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
-import no.nibio.vips.logic.scheduling.VipsLogicTaskFactory;
-import no.nibio.vips.logic.util.SessionControllerGetter;
-import no.nibio.web.forms.FormField;
/**
- * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2014-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class UpdateForecastResultCacheTableTask extends VipsLogicTask{
+ @EJB
+ ForecastBean forecastBean;
@Override
public String getConfigFormDefinition(String language) {
@@ -39,7 +40,7 @@ public class UpdateForecastResultCacheTableTask extends VipsLogicTask{
@Override
public void execute(TaskExecutionContext tec) throws RuntimeException {
tec.setCompleteness(0d);
- SessionControllerGetter.getForecastBean().updateForecastResultCacheTable();
+ forecastBean.updateForecastResultCacheTable();
tec.setCompleteness(1d);
}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java
index 19e98ba0038cede64a3ec5027b078b9d4a10e0fb..cc0e41bd41a6cd4da6e8ac6ee00fd0e3ee1e2a71 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateForecastSummaryTableTask.java
@@ -20,15 +20,19 @@
package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
/**
- * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2015-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class UpdateForecastSummaryTableTask extends VipsLogicTask{
+
+ @EJB
+ ForecastBean forecastBean;
@Override
public String getConfigFormDefinition(String language) {
@@ -38,7 +42,7 @@ public class UpdateForecastSummaryTableTask extends VipsLogicTask{
@Override
public void execute(TaskExecutionContext tec) throws RuntimeException {
tec.setCompleteness(0d);
- SessionControllerGetter.getForecastBean().updateForecastSummaryTable(SystemTime.getSystemTime());
+ forecastBean.updateForecastSummaryTable(SystemTime.getSystemTime());
tec.setCompleteness(1d);
}
diff --git a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java
index 102c4a399c662f8654f03f8458cca7df25164714..d68a8b291317d2a14a286bd71103b8bbafc346a7 100755
--- a/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java
+++ b/src/main/java/no/nibio/vips/logic/scheduling/tasks/UpdateModelInformationTask.java
@@ -20,17 +20,19 @@
package no.nibio.vips.logic.scheduling.tasks;
import it.sauronsoftware.cron4j.TaskExecutionContext;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.ForecastBean;
import no.nibio.vips.logic.scheduling.VipsLogicTask;
-import no.nibio.vips.logic.scheduling.VipsLogicTaskFactory;
-import no.nibio.vips.logic.util.SessionControllerGetter;
-import no.nibio.web.forms.FormField;
/**
* Ensures model information is imported from VIPSCoreManager and
- * @copyright 2014 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2014-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class UpdateModelInformationTask extends VipsLogicTask{
+
+ @EJB
+ ForecastBean forecastBean;
/**
*
@@ -45,7 +47,7 @@ public class UpdateModelInformationTask extends VipsLogicTask{
@Override
public void execute(TaskExecutionContext tec) throws RuntimeException {
tec.setCompleteness(0d);
- SessionControllerGetter.getForecastBean().updateModelInformation();
+ forecastBean.updateModelInformation();
tec.setCompleteness(1d);
}
diff --git a/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java b/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java
index f9e40286478cbc17cd376d89b6a9f297eaa615f3..abb6329764036f310de54db0e822e261298a6cf2 100644
--- a/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java
+++ b/src/main/java/no/nibio/vips/logic/service/AuthenticationService.java
@@ -38,22 +38,25 @@ import javax.ws.rs.core.Response.Status;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.webcohesion.enunciate.metadata.Facet;
import com.webcohesion.enunciate.metadata.rs.TypeHint;
+import javax.ejb.EJB;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.UserUuid;
import no.nibio.vips.logic.entity.VipsLogicUser;
-import no.nibio.vips.logic.util.SessionControllerGetter;
/**
* Authentication services
- * @copyright 2021 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2021-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Path("rest/auth")
public class AuthenticationService {
+
+ @EJB
+ UserBean userBean;
- @Context
+ @Context
private HttpServletRequest httpServletRequest;
/**
@@ -80,14 +83,14 @@ public class AuthenticationService {
creds.put("username", username);
creds.put("password", password);
// Authenticate
- VipsLogicUser user = SessionControllerGetter.getUserBean().authenticateUser(creds);
+ VipsLogicUser user = userBean.authenticateUser(creds);
// Return success (true/false) and UUID if success
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode result = objectMapper.createObjectNode();
if(user != null)
{
- UserUuid uuid = SessionControllerGetter.getUserBean().createAndPersistUserUuid(user);
+ UserUuid uuid = userBean.createAndPersistUserUuid(user);
result.put("success", true);
result.put("UUID", uuid.getUserUuidPK().getUserUuid().toString());
}
@@ -111,11 +114,11 @@ public class AuthenticationService {
{
String uuidStr = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION);
UUID uuid = UUID.fromString(uuidStr);
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(uuid);
+ VipsLogicUser user = userBean.findVipsLogicUser(uuid);
if(user != null)
{
// Also, renew the uuid by default length
- SessionControllerGetter.getUserBean().renewUserUuid(uuid);
+ userBean.renewUserUuid(uuid);
return Response.ok().entity(user).build();
}
else
diff --git a/src/main/java/no/nibio/vips/logic/service/GrowthStageService.java b/src/main/java/no/nibio/vips/logic/service/GrowthStageService.java
index 2f27ca8c92d6834d1377fb9951b909c280615b48..05b07d7a026d39ac95b337f49f4d99b1ebc4a1b8 100644
--- a/src/main/java/no/nibio/vips/logic/service/GrowthStageService.java
+++ b/src/main/java/no/nibio/vips/logic/service/GrowthStageService.java
@@ -21,7 +21,6 @@ package no.nibio.vips.logic.service;
import com.vividsolutions.jts.geom.Coordinate;
import java.time.LocalDate;
-import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -30,6 +29,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.servlet.http.HttpServletRequest;
@@ -40,13 +40,13 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
import no.nibio.vips.logic.entity.Organism;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.modules.wheatleafblotch.GrowthStageLocationDate;
-import no.nibio.vips.logic.util.SessionControllerGetter;
/**
- * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2020-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Path("rest/gs")
@@ -56,6 +56,9 @@ public class GrowthStageService {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+
/**
* At what dates can we expect the given crop to be at the given growth stages
* at the given location?
@@ -213,7 +216,7 @@ public class GrowthStageService {
.setParameter("cropOrganismId", organismId)
.getResultList();
- PointOfInterestWeatherStation closestStation = SessionControllerGetter.getPointOfInterestBean().findClosestWeatherStation(this.getLocationCoordinate(location), stationsWithGrowthStageInfoForCrop);
+ PointOfInterestWeatherStation closestStation = pointOfInterestBean.findClosestWeatherStation(this.getLocationCoordinate(location), stationsWithGrowthStageInfoForCrop);
return em.createNamedQuery("GrowthStageLocationDate.findByCropOrganismIdAndPointOfInterestId")
.setParameter("cropOrganismId", em.find(Organism.class, organismId))
.setParameter("pointOfInterestId", closestStation)
diff --git a/src/main/java/no/nibio/vips/logic/service/LogicService.java b/src/main/java/no/nibio/vips/logic/service/LogicService.java
index 6c7b9be72c68f351893c773d796637157e6d2458..655cf843ad7679c609a0d870362ac03ef1e6b48a 100755
--- a/src/main/java/no/nibio/vips/logic/service/LogicService.java
+++ b/src/main/java/no/nibio/vips/logic/service/LogicService.java
@@ -23,13 +23,6 @@ import com.ibm.icu.util.ULocale;
import com.webcohesion.enunciate.metadata.Facet;
import java.util.TimeZone;
import de.micromata.opengis.kml.v_2_2_0.Kml;
-import java.io.BufferedReader;
-import java.io.IOError;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -41,6 +34,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
@@ -57,6 +51,11 @@ import javax.ws.rs.core.Response;
import no.nibio.vips.coremanager.service.ManagerResource;
import no.nibio.vips.entity.WeatherObservation;
import no.nibio.vips.logic.authenticate.PasswordValidationException;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.MessageBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.CropPest;
import no.nibio.vips.logic.entity.ForecastResult;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
@@ -71,7 +70,6 @@ import no.nibio.vips.logic.entity.PointOfInterest;
import no.nibio.vips.logic.entity.PointOfInterestType;
import no.nibio.vips.logic.entity.PointOfInterestWeatherStation;
import no.nibio.vips.logic.entity.VipsLogicUser;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.util.CSVPrintUtil;
import no.nibio.vips.util.ServletUtil;
@@ -93,6 +91,17 @@ public class LogicService {
@Context
private HttpServletRequest httpServletRequest;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ UserBean userBean;
+ @EJB
+ OrganismBean organismBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+ @EJB
+ MessageBean messageBean;
+
/**
* Get all results for one pest prediction
* @param forecastConfigurationId Database id of the configured forecast
@@ -129,9 +138,9 @@ public class LogicService {
@QueryParam("userUUID") String userUUID
)
{
- if(SessionControllerGetter.getForecastBean().isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
+ if(forecastBean.isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
{
- List<ForecastResult> results = SessionControllerGetter.getForecastBean().getForecastResults(forecastConfigurationId);
+ List<ForecastResult> results = forecastBean.getForecastResults(forecastConfigurationId);
if(results == null)
{
results = new ArrayList<>();
@@ -159,10 +168,10 @@ public class LogicService {
@QueryParam("userUUID") String userUUID
)
{
- if(SessionControllerGetter.getForecastBean().isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
+ if(forecastBean.isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
{
String CSVOutput = "";
- List<ForecastResult> results = SessionControllerGetter.getForecastBean().getForecastResults(forecastConfigurationId);
+ List<ForecastResult> results = forecastBean.getForecastResults(forecastConfigurationId);
if(results != null && ! results.isEmpty())
{
List<String> parameters = new ArrayList<>();//new String[results.get(0).getKeys().size() + 3];
@@ -214,9 +223,9 @@ public class LogicService {
@QueryParam("userUUID") String userUUID
)
{
- if(SessionControllerGetter.getForecastBean().isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
+ if(forecastBean.isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
{
- List<ForecastResult> results = SessionControllerGetter.getForecastBean().getForecastResults(forecastConfigurationId, latestDays);
+ List<ForecastResult> results = forecastBean.getForecastResults(forecastConfigurationId, latestDays);
if(results == null)
{
results = new ArrayList<>();
@@ -244,7 +253,7 @@ public class LogicService {
{
Date dateStart = format.parse(dateStartStr);
Date dateEnd = format.parse(dateEndStr);
- return Response.ok().entity(SessionControllerGetter.getForecastBean().getForecastResults(forecastConfigurationId, dateStart, dateEnd)).build();
+ return Response.ok().entity(forecastBean.getForecastResults(forecastConfigurationId, dateStart, dateEnd)).build();
}
catch(ParseException ex)
{
@@ -274,11 +283,11 @@ public class LogicService {
try
{
UUID uUUID = UUID.fromString(userUUID);
- user = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ user = userBean.findVipsLogicUser(uUUID);
}
catch(NullPointerException | IllegalArgumentException ex) {}
- List<ForecastConfiguration> summaries = SessionControllerGetter.getForecastBean().getForecastConfigurationSummaries(organizationId, user);
+ List<ForecastConfiguration> summaries = forecastBean.getForecastConfigurationSummaries(organizationId, user);
if(includeOrganizationIds != null)
{
@@ -292,7 +301,7 @@ public class LogicService {
{
continue;
}
- summaries.addAll(SessionControllerGetter.getForecastBean().getForecastConfigurationSummaries(includeOrgId, user));
+ summaries.addAll(forecastBean.getForecastConfigurationSummaries(includeOrgId, user));
}
catch(NumberFormatException ex){}
}
@@ -315,10 +324,10 @@ public class LogicService {
)
{
UUID uUUID = UUID.fromString(userUUID);
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ VipsLogicUser user = userBean.findVipsLogicUser(uUUID);
if(user != null)
{
- List<ForecastConfiguration> summaries = SessionControllerGetter.getForecastBean().getPrivateForecastConfigurationSummaries(user);
+ List<ForecastConfiguration> summaries = forecastBean.getPrivateForecastConfigurationSummaries(user);
return Response.ok().entity(summaries).build();
}
else
@@ -339,9 +348,9 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getForecastConfiguration(@PathParam("forecastConfigurationId") Long forecastConfigurationId,@QueryParam("userUUID") String userUUID)
{
- if(SessionControllerGetter.getForecastBean().isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
+ if(forecastBean.isUserAuthorizedForForecastConfiguration(forecastConfigurationId, userUUID))
{
- ForecastConfiguration forecastConfiguration = SessionControllerGetter.getForecastBean().getForecastConfiguration(forecastConfigurationId);
+ ForecastConfiguration forecastConfiguration = forecastBean.getForecastConfiguration(forecastConfigurationId);
return Response.ok().entity(forecastConfiguration).build();
}
else
@@ -361,7 +370,7 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getForecastConfigurationsForModel(@PathParam("modelId") String modelId, @PathParam("year") Integer year)
{
- return Response.ok().entity(SessionControllerGetter.getForecastBean().getForecastConfigurationsForModel(modelId, year)).build();
+ return Response.ok().entity(forecastBean.getForecastConfigurationsForModel(modelId, year)).build();
}
@@ -379,10 +388,10 @@ public class LogicService {
try
{
UUID uUUID = UUID.fromString(userUUID);
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ VipsLogicUser user = userBean.findVipsLogicUser(uUUID);
if(user != null)
{
- List<ForecastConfiguration> retVal = SessionControllerGetter.getForecastBean().getPrivateForecastConfigurationsForUser(user.getUserId());
+ List<ForecastConfiguration> retVal = forecastBean.getPrivateForecastConfigurationsForUser(user.getUserId());
return Response.ok().entity(retVal).build();
}
else
@@ -444,7 +453,7 @@ public class LogicService {
catch(NumberFormatException ex){}
}
}
- List<ForecastConfiguration> forecastConfigs = SessionControllerGetter.getForecastBean().getForecastConfigurations(orgIds, from, to);
+ List<ForecastConfiguration> forecastConfigs = forecastBean.getForecastConfigurations(orgIds, from, to);
return Response.ok().entity(forecastConfigs).build();
}
@@ -484,7 +493,7 @@ public class LogicService {
// First: Get all users for organization
- List<VipsLogicUser> organizationUsers = SessionControllerGetter.getUserBean().getUsersByOrganization(organizationId);
+ List<VipsLogicUser> organizationUsers = userBean.getUsersByOrganization(organizationId);
// Then: Get forecasts for these users, collate and return
List<ForecastConfiguration> forecasts = new ArrayList<>();
@@ -492,8 +501,8 @@ public class LogicService {
{
Integer userId = user.getUserId();
List<ForecastConfiguration> result = cropOrganismIds != null && ! cropOrganismIds.isEmpty() ?
- SessionControllerGetter.getForecastBean().getForecastConfigurationsForUserAndCropsAndDate(userId,cropOrganismIds, from, to)
- : SessionControllerGetter.getForecastBean().getForecastConfigurationsForUserAndDate(userId, from, to);
+ forecastBean.getForecastConfigurationsForUserAndCropsAndDate(userId,cropOrganismIds, from, to)
+ : forecastBean.getForecastConfigurationsForUserAndDate(userId, from, to);
if(forecasts == null)
forecasts = result;
else
@@ -521,7 +530,7 @@ public class LogicService {
ULocale currentLocale = SessionLocaleUtil.getCurrentLocale(httpServletRequest);
try
{
- boolean isPasswordValid = SessionControllerGetter.getUserBean().isPasswordValid(password, currentLocale);
+ boolean isPasswordValid = userBean.isPasswordValid(password, currentLocale);
return Response.ok().entity("true").build();
}
@@ -537,7 +546,7 @@ public class LogicService {
@Facet("restricted")
public Response getForecastModelConfiguration(@PathParam("forecastConfigurationId") Long forecastConfigurationId)
{
- List<ForecastModelConfiguration> forecastModelConfigurations = SessionControllerGetter.getForecastBean().getForecastModelConfigurations(forecastConfigurationId);
+ List<ForecastModelConfiguration> forecastModelConfigurations = forecastBean.getForecastModelConfigurations(forecastConfigurationId);
return Response.ok().entity(forecastModelConfigurations).build();
}
@@ -562,7 +571,7 @@ public class LogicService {
try
{
UUID uUUID = UUID.fromString(userUUID);
- viewUser = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ viewUser = userBean.findVipsLogicUser(uUUID);
}
catch(IllegalArgumentException ex)
{
@@ -577,8 +586,8 @@ public class LogicService {
}
else
{
- List<Integer> cropOrganismIds = SessionControllerGetter.getOrganismBean().getCropCategoryOrganismIds(cropCategoryIds);
- Kml retVal = SessionControllerGetter.getForecastBean().getForecastsAggregateKml(organizationIds, cropOrganismIds, SystemTime.getSystemTime(), ServletUtil.getServerName(httpServletRequest), viewUser);
+ List<Integer> cropOrganismIds = organismBean.getCropCategoryOrganismIds(cropCategoryIds);
+ Kml retVal = forecastBean.getForecastsAggregateKml(organizationIds, cropOrganismIds, SystemTime.getSystemTime(), ServletUtil.getServerName(httpServletRequest), viewUser);
return Response.ok().entity(retVal).build();
}
}
@@ -610,15 +619,15 @@ public class LogicService {
try
{
UUID uUUID = UUID.fromString(userUUID);
- viewUser = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ viewUser = userBean.findVipsLogicUser(uUUID);
}
catch(IllegalArgumentException ex)
{
// Skip this
}
}
- List<Integer> cropOrganismIds = SessionControllerGetter.getOrganismBean().getCropCategoryOrganismIds(cropCategoryIds);
- Kml retVal = SessionControllerGetter.getForecastBean().getForecastsAggregateKml(organizationIds, cropOrganismIds, SystemTime.getSystemTime(), ServletUtil.getServerName(httpServletRequest), viewUser);
+ List<Integer> cropOrganismIds = organismBean.getCropCategoryOrganismIds(cropCategoryIds);
+ Kml retVal = forecastBean.getForecastsAggregateKml(organizationIds, cropOrganismIds, SystemTime.getSystemTime(), ServletUtil.getServerName(httpServletRequest), viewUser);
return Response.ok().entity(retVal).build();
}
}
@@ -634,7 +643,7 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getLatestForecastResultsForPoi(@PathParam("poiId") Integer poiId)
{
- Map<String, Object> latestResults = SessionControllerGetter.getForecastBean().getLatestForecastResultsForPoi(poiId);
+ Map<String, Object> latestResults = forecastBean.getLatestForecastResultsForPoi(poiId);
return Response.ok().entity(latestResults).build();
}
@@ -650,7 +659,7 @@ public class LogicService {
@Produces("application/vnd.google-earth.kml+xml;charset=utf-8")
public Response getWeatherStations(@QueryParam("excludeWeatherStationId") Integer excludeWeatherStationId, @QueryParam("highlightWeatherStationId") Integer highlightWeatherStationId, @PathParam("organizationId") Integer organizationId)
{
- Kml retVal = SessionControllerGetter.getPointOfInterestBean().getPoisForOrganization(organizationId, excludeWeatherStationId, highlightWeatherStationId, ServletUtil.getServerName(httpServletRequest), SessionLocaleUtil.getI18nBundle(httpServletRequest), PointOfInterestType.POINT_OF_INTEREST_TYPE_WEATHER_STATION);
+ Kml retVal = pointOfInterestBean.getPoisForOrganization(organizationId, excludeWeatherStationId, highlightWeatherStationId, ServletUtil.getServerName(httpServletRequest), SessionLocaleUtil.getI18nBundle(httpServletRequest), PointOfInterestType.POINT_OF_INTEREST_TYPE_WEATHER_STATION);
return Response.ok().entity(retVal).build();
}
@@ -666,7 +675,7 @@ public class LogicService {
@Produces("application/vnd.google-earth.kml+xml;charset=utf-8")
public Response getPois(@QueryParam("excludePoiId") Integer excludePoiId, @QueryParam("highlightPoiId") Integer highlightPoiId, @PathParam("organizationId") Integer organizationId)
{
- Kml retVal = SessionControllerGetter.getPointOfInterestBean().getPoisForOrganization(organizationId, excludePoiId, highlightPoiId, ServletUtil.getServerName(httpServletRequest), SessionLocaleUtil.getI18nBundle(httpServletRequest), null);
+ Kml retVal = pointOfInterestBean.getPoisForOrganization(organizationId, excludePoiId, highlightPoiId, ServletUtil.getServerName(httpServletRequest), SessionLocaleUtil.getI18nBundle(httpServletRequest), null);
return Response.ok().entity(retVal).build();
}
@@ -681,8 +690,8 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getPoisForOrganization(@PathParam("organizationId") Integer organizationId)
{
- Organization organization = SessionControllerGetter.getUserBean().getOrganization(organizationId);
- List<PointOfInterestWeatherStation> retVal = SessionControllerGetter.getPointOfInterestBean().getWeatherstationsForOrganization(organization, Boolean.TRUE);
+ Organization organization = userBean.getOrganization(organizationId);
+ List<PointOfInterestWeatherStation> retVal = pointOfInterestBean.getWeatherstationsForOrganization(organization, Boolean.TRUE);
return Response.ok().entity(retVal).build();
}
@@ -696,7 +705,7 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getPoi(@PathParam("pointOfInterestId") Integer pointOfInterestId)
{
- PointOfInterest retVal = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(pointOfInterestId);
+ PointOfInterest retVal = pointOfInterestBean.getPointOfInterest(pointOfInterestId);
return Response.ok().entity(retVal).build();
}
@@ -710,7 +719,7 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getPoiByName(@PathParam("poiName") String poiName)
{
- PointOfInterest retVal = SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(poiName);
+ PointOfInterest retVal = pointOfInterestBean.getPointOfInterest(poiName);
return retVal != null ? Response.ok().entity(retVal).build() : Response.noContent().build();
}
@@ -730,9 +739,9 @@ public class LogicService {
{
String uuidStr = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION);
UUID uuid = UUID.fromString(uuidStr);
- user = SessionControllerGetter.getUserBean().findVipsLogicUser(uuid);
+ user = userBean.findVipsLogicUser(uuid);
}
- List<PointOfInterest> retVal = SessionControllerGetter.getPointOfInterestBean().getRelevantPointOfInterestsForUser(user);
+ List<PointOfInterest> retVal = pointOfInterestBean.getRelevantPointOfInterestsForUser(user);
return Response.ok().entity(retVal).build();
}
@@ -746,7 +755,7 @@ public class LogicService {
@Facet("restricted")
public Response getOrganismList()
{
- List<Organism> organismList = SessionControllerGetter.getOrganismBean().getOrganismSubTree(null);
+ List<Organism> organismList = organismBean.getOrganismSubTree(null);
return Response.ok().entity(organismList).build();
}
@@ -761,7 +770,7 @@ public class LogicService {
public Response findOrganismsByLatinNames(@QueryParam("keywords") String keywords)
{
List<String> latinNames = Arrays.asList(keywords.split(","));
- List<Organism> organismList = SessionControllerGetter.getOrganismBean().findOrganismsByLatinNames(latinNames);
+ List<Organism> organismList = organismBean.findOrganismsByLatinNames(latinNames);
return Response.ok().entity(organismList).build();
}
@@ -779,7 +788,7 @@ public class LogicService {
)
{
List<String> localNames = Arrays.asList(keywords.split(",")).stream().map(String::trim).collect(Collectors.toList());
- List<Organism> organismList = SessionControllerGetter.getOrganismBean().findOrganismsByLocalNames(localNames, locale);
+ List<Organism> organismList = organismBean.findOrganismsByLocalNames(localNames, locale);
return Response.ok().entity(organismList).build();
}
@@ -793,7 +802,7 @@ public class LogicService {
@Facet("restricted")
public Response getCropOrganismList()
{
- List<Organism> organismList = SessionControllerGetter.getOrganismBean().getAllCrops();
+ List<Organism> organismList = organismBean.getAllCrops();
return Response.ok().entity(organismList).build();
}
@@ -813,11 +822,11 @@ public class LogicService {
List<Organism> organismList;
if(cropOrganismId == null)
{
- organismList = SessionControllerGetter.getOrganismBean().getAllPests();
+ organismList = organismBean.getAllPests();
}
else
{
- organismList = SessionControllerGetter.getOrganismBean().getCropPests(cropOrganismId);
+ organismList = organismBean.getCropPests(cropOrganismId);
}
return Response.ok().entity(organismList).build();
}
@@ -834,7 +843,7 @@ public class LogicService {
public Response getCropPestList(
)
{
- return Response.ok().entity(SessionControllerGetter.getOrganismBean().getCropPestsMapped()).build();
+ return Response.ok().entity(organismBean.getCropPestsMapped()).build();
}
/**
@@ -848,7 +857,7 @@ public class LogicService {
@Facet("restricted")
public Response getMessage(@PathParam("messageId") Integer messageId)
{
- Message message = SessionControllerGetter.getMessageBean().getMessage(messageId);
+ Message message = messageBean.getMessage(messageId);
return Response.ok().entity(message).build();
}
@@ -888,7 +897,7 @@ public class LogicService {
datePublishedTo = publishedTo == null ? null : format.parse(publishedTo);
}
- List<Message> messageList = SessionControllerGetter.getMessageBean().getMessageList(organizationId, datePublishedFrom, datePublishedTo);
+ List<Message> messageList = messageBean.getMessageList(organizationId, datePublishedFrom, datePublishedTo);
return Response.ok().entity(messageList).build();
}
catch(ParseException ex){
@@ -909,7 +918,7 @@ public class LogicService {
@Facet("restricted")
public Response getMessageListWithTags(@QueryParam("tagId") List<Integer> tagIds, @PathParam("organizationId") Integer organizationId)
{
- List<Message> messageListWithTags = SessionControllerGetter.getMessageBean().getCurrentFilteredMessagesForOrganization(tagIds, organizationId);
+ List<Message> messageListWithTags = messageBean.getCurrentFilteredMessagesForOrganization(tagIds, organizationId);
return Response.ok().entity(messageListWithTags).build();
}
@@ -923,7 +932,7 @@ public class LogicService {
@Facet("restricted")
public Response getMessageTagList()
{
- List<MessageTag> messageTags = SessionControllerGetter.getMessageBean().getMessageTagList();
+ List<MessageTag> messageTags = messageBean.getMessageTagList();
return Response.ok().entity(messageTags).build();
}
@@ -1074,8 +1083,8 @@ public class LogicService {
return Response.status(Response.Status.UNAUTHORIZED).build();
}
Date start = new Date();
- SessionControllerGetter.getForecastBean().updateForecastResultCacheTable();
- SessionControllerGetter.getForecastBean().updateForecastSummaryTable(SystemTime.getSystemTime());
+ forecastBean.updateForecastResultCacheTable();
+ forecastBean.updateForecastSummaryTable(SystemTime.getSystemTime());
Long timeLapsed = new Date().getTime() - start.getTime();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return Response.ok().entity("Forecast caches were successfully updated with data from today ("
@@ -1097,7 +1106,7 @@ public class LogicService {
try
{
UUID uUUID = UUID.fromString(userUUID);
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(uUUID);
+ VipsLogicUser user = userBean.findVipsLogicUser(uUUID);
if(user != null)
{
return Response.ok().entity(user).build();
@@ -1127,7 +1136,7 @@ public class LogicService {
try
{
UUID uUUID = UUID.fromString(userUUID);
- SessionControllerGetter.getUserBean().deleteUserUuid(uUUID);
+ userBean.deleteUserUuid(uUUID);
return Response.ok().build();
}
catch(IllegalArgumentException ex)
@@ -1147,7 +1156,7 @@ public class LogicService {
@Facet("restricted")
public Response getCropPest(@PathParam("cropOrganismId") Integer cropOrganismId)
{
- CropPest retVal = SessionControllerGetter.getOrganismBean().getCropPestRecursive(cropOrganismId,true);
+ CropPest retVal = organismBean.getCropPestRecursive(cropOrganismId,true);
if(retVal != null)
{
return Response.ok().entity(retVal).build();
@@ -1171,7 +1180,7 @@ public class LogicService {
{
if(organizationId != null)
{
- return Response.ok().entity(SessionControllerGetter.getOrganismBean().getCropCategories(organizationId)).build();
+ return Response.ok().entity(organismBean.getCropCategories(organizationId)).build();
}
else
{
@@ -1184,7 +1193,7 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getOrganizations()
{
- return Response.ok().entity(SessionControllerGetter.getUserBean().getOrganizations()).build();
+ return Response.ok().entity(userBean.getOrganizations()).build();
}
@GET
@@ -1192,7 +1201,7 @@ public class LogicService {
@Produces("application/json;charset=UTF-8")
public Response getModelInformation(@PathParam("modelId") String modelId)
{
- ModelInformation retVal = SessionControllerGetter.getForecastBean().getModelInformation(modelId);
+ ModelInformation retVal = forecastBean.getModelInformation(modelId);
return retVal != null ? Response.ok().entity(retVal).build()
: Response.status(Response.Status.NOT_FOUND).entity("ERROR: Could not find model with id=" + modelId).build();
}
diff --git a/src/main/java/no/nibio/vips/logic/service/ModelFormService.java b/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
index 2e7c094d74fbae49e1ab33600b9cedc7924b21c9..5b8cd2d8e21cced2f1163aeb1f61ff7386e3d82e 100644
--- a/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ModelFormService.java
@@ -26,6 +26,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;
+import javax.ejb.EJB;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@@ -35,6 +36,9 @@ import no.nibio.vips.entity.ModelConfiguration;
import no.nibio.vips.entity.Result;
import no.nibio.vips.entity.WeatherObservation;
import no.nibio.vips.gis.GISUtil;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.ForecastModelConfiguration;
import no.nibio.vips.logic.entity.ForecastModelConfigurationPK;
@@ -44,7 +48,6 @@ import no.nibio.vips.logic.entity.WeatherStationDataSource;
import no.nibio.vips.logic.scheduling.model.PreprocessorException;
import no.nibio.vips.logic.scheduling.model.preprocessor.SeptoriaHumidityModelPreprocessor;
import no.nibio.vips.logic.util.RunModelException;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import no.nibio.vips.logic.util.SystemTime;
import no.nibio.vips.util.ParseRESTParamUtil;
import no.nibio.vips.util.WeatherUtil;
@@ -53,12 +56,19 @@ import no.nibio.vips.util.weather.WeatherDataSourceUtil;
/**
* This is a collection of services for models run from forms (not as part of batch)
- * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2018-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Path("rest/modelform")
@Facet("restricted")
public class ModelFormService {
+
+ @EJB
+ UserBean userBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+ @EJB
+ ForecastBean forecastBean;
@GET
@Path("SEPTORIAHU/runmodel")
@@ -108,7 +118,7 @@ public class ModelFormService {
// Data parsing
Integer organizationId = Integer.valueOf(organizationId_countryCode.split("_")[0]);
- Organization organization = SessionControllerGetter.getUserBean().getOrganization(organizationId);
+ Organization organization = userBean.getOrganization(organizationId);
fConf.setTimeZone(organization.getDefaultTimeZone());
TimeZone timeZone = TimeZone.getTimeZone(organization.getDefaultTimeZone());
ParseRESTParamUtil pUtil = new ParseRESTParamUtil();
@@ -141,7 +151,7 @@ public class ModelFormService {
GISUtil gisUtil = new GISUtil();
Coordinate UTMc = new Coordinate(UTM32vE, UTM32vN);
Coordinate coordinate = gisUtil.convertCoordinate(UTMc, "EPSG:32632", "EPSG:4326");
- WeatherStationDataSource wsds = SessionControllerGetter.getPointOfInterestBean().getWeatherStationDataSource("DMI PointWeb");
+ WeatherStationDataSource wsds = pointOfInterestBean.getWeatherStationDataSource("DMI PointWeb");
ws = new PointOfInterestWeatherStation();
ws.setWeatherStationDataSourceId(wsds);
ws.setWeatherStationRemoteId(coordinate.y + "," + coordinate.x);// For some reason, The transformation switches X/Y
@@ -152,7 +162,7 @@ public class ModelFormService {
else
{
// Weather station id maps to a regular weather station
- ws = (PointOfInterestWeatherStation) SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(Integer.valueOf(weatherStationId));
+ ws = (PointOfInterestWeatherStation) pointOfInterestBean.getPointOfInterest(Integer.valueOf(weatherStationId));
}
fConf.setWeatherStationPointOfInterestId(ws);
fConf.setLocationPointOfInterestId(ws);
@@ -162,7 +172,7 @@ public class ModelFormService {
Integer VIPSCoreUserId = organization.getDefaultVipsCoreUserId();
System.out.println("defaultVIPScoreUserId = " + VIPSCoreUserId);
- List<Result>results = SessionControllerGetter.getForecastBean().runForecast(mConf, VIPSCoreUserId);
+ List<Result>results = forecastBean.runForecast(mConf, VIPSCoreUserId);
return Response.ok().entity(results).build();
}
@@ -174,7 +184,7 @@ public class ModelFormService {
private ForecastModelConfiguration getForecastModelConfiguration(String modelId, String key, String value)
{
- ForecastModelConfiguration retVal = new ForecastModelConfiguration(new ForecastModelConfigurationPK(-1, SessionControllerGetter.getForecastBean().getDeCamelizedFieldName(modelId, key)));
+ ForecastModelConfiguration retVal = new ForecastModelConfiguration(new ForecastModelConfigurationPK(-1, forecastBean.getDeCamelizedFieldName(modelId, key)));
retVal.setParameterValue(value);
return retVal;
}
diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
index b6ea8f02f37f8e7af13dd0ab27f7047f5f4854eb..cf695a52b23ee1c6d39ccc77b6639aa5cfa4b52d 100755
--- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
@@ -19,16 +19,12 @@
package no.nibio.vips.logic.service;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
import com.ibm.icu.util.ULocale;
-import com.webcohesion.enunciate.metadata.Facet;
import java.io.IOException;
import java.net.URI;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
-import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -36,6 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
+import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -54,6 +51,9 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Gis;
import no.nibio.vips.logic.entity.Observation;
@@ -65,9 +65,7 @@ import no.nibio.vips.logic.entity.rest.PointMappingResponse;
import no.nibio.vips.logic.entity.rest.ReferencedPoint;
import no.nibio.vips.logic.util.GISEntityUtil;
import no.nibio.vips.logic.util.Globals;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import org.jboss.resteasy.annotations.GZIP;
-import org.joda.time.LocalDate;
import org.wololo.geojson.Feature;
/**
@@ -80,6 +78,13 @@ public class ObservationService {
@Context
private HttpServletRequest httpServletRequest;
+ @EJB
+ UserBean userBean;
+ @EJB
+ ObservationBean observationBean;
+ @EJB
+ OrganismBean organismBean;
+
/*
* NOTE TO SELF
* How to query for observations within a bounding box
@@ -152,11 +157,11 @@ public class ObservationService {
if(user == null && userUUID != null)
{
- user = SessionControllerGetter.getUserBean().findVipsLogicUser(UUID.fromString(userUUID));
+ user = userBean.findVipsLogicUser(UUID.fromString(userUUID));
}
ULocale locale = new ULocale(localeStr != null ? localeStr :
user != null ? user.getOrganizationId().getDefaultLocale() :
- SessionControllerGetter.getUserBean().getOrganization(organizationId).getDefaultLocale());
+ userBean.getOrganization(organizationId).getDefaultLocale());
List<ObservationListItem> observations = getFilteredObservationsFromBackend(
organizationId,
@@ -169,8 +174,8 @@ public class ObservationService {
).stream().map(obs -> {
try {
return obs.getListItem(locale.getLanguage(),
- SessionControllerGetter.getObservationBean().getLocalizedObservationDataSchema(
- SessionControllerGetter.getObservationBean().getObservationDataSchema(organizationId, obs.getOrganismId()),
+ observationBean.getLocalizedObservationDataSchema(
+ observationBean.getObservationDataSchema(organizationId, obs.getOrganismId()),
httpServletRequest,
locale
)
@@ -182,7 +187,7 @@ public class ObservationService {
}
}).collect(Collectors.toList());
- //o.setObservationDataSchema(SessionControllerGetter.getObservationBean().getObservationDataSchema(observer.getOrganizationId().getOrganizationId(), o.getOrganismId()));
+ //o.setObservationDataSchema(observationBean.getObservationDataSchema(observer.getOrganizationId().getOrganizationId(), o.getOrganismId()));
return Response.ok().entity(observations).build();
}
@@ -208,7 +213,7 @@ public class ObservationService {
}
catch(ParseException ex){ System.out.println("ERROR");}
- return SessionControllerGetter.getObservationBean().getFilteredObservations(
+ return observationBean.getFilteredObservations(
organizationId,
pestId,
cropId,
@@ -244,7 +249,7 @@ public class ObservationService {
}
catch(ParseException ex){ System.out.println("ERROR");}
- List<Observation> filteredObservations = SessionControllerGetter.getObservationBean().getFilteredObservations(
+ List<Observation> filteredObservations = observationBean.getFilteredObservations(
organizationId,
pestId,
cropId,
@@ -269,7 +274,7 @@ public class ObservationService {
@Produces("application/json;charset=UTF-8")
public Response getObservedPests(@PathParam("organizationId") Integer organizationId)
{
- return Response.ok().entity(SessionControllerGetter.getObservationBean().getObservedPests(organizationId)).build();
+ return Response.ok().entity(observationBean.getObservedPests(organizationId)).build();
}
/**
@@ -284,7 +289,7 @@ public class ObservationService {
@Produces("application/json;charset=UTF-8")
public Response getObservedCrops(@PathParam("organizationId") Integer organizationId)
{
- return Response.ok().entity(SessionControllerGetter.getObservationBean().getObservedCrops(organizationId)).build();
+ return Response.ok().entity(observationBean.getObservedCrops(organizationId)).build();
}
@@ -298,7 +303,7 @@ public class ObservationService {
@GZIP
@Produces("application/json;charset=UTF-8")
public Response getObservations(@PathParam("organizationId") Integer organizationId){
- return Response.ok().entity(SessionControllerGetter.getObservationBean().getObservations(organizationId, Observation.STATUS_TYPE_ID_APPROVED)).build();
+ return Response.ok().entity(observationBean.getObservations(organizationId, Observation.STATUS_TYPE_ID_APPROVED)).build();
}
/**
@@ -313,10 +318,10 @@ public class ObservationService {
{
String uuidStr = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION);
UUID uuid = UUID.fromString(uuidStr);
- VipsLogicUser user = SessionControllerGetter.getUserBean().findVipsLogicUser(uuid);
+ VipsLogicUser user = userBean.findVipsLogicUser(uuid);
if(user != null)
{
- return Response.ok().entity(SessionControllerGetter.getObservationBean().getObservationsForUser(user)).build();
+ return Response.ok().entity(observationBean.getObservationsForUser(user)).build();
}
else
{
@@ -356,7 +361,7 @@ public class ObservationService {
{
to = format.parse(timeOfObservationTo);
}
- return Response.ok().entity(SessionControllerGetter.getObservationBean().getBroadcastObservations(organizationId, from, to)).build();
+ return Response.ok().entity(observationBean.getBroadcastObservations(organizationId, from, to)).build();
}
catch(ParseException ex)
{
@@ -365,7 +370,7 @@ public class ObservationService {
}
else
{
- return Response.ok().entity(SessionControllerGetter.getObservationBean().getBroadcastObservations(organizationId, season)).build();
+ return Response.ok().entity(observationBean.getBroadcastObservations(organizationId, season)).build();
}
}
@@ -377,19 +382,19 @@ public class ObservationService {
@QueryParam("userUUID") String userUUID
){
// Observation needs to be masked here as well, or does it create trouble for VIPSLogic observation admin?
- Observation o = SessionControllerGetter.getObservationBean().getObservation(observationId);
+ Observation o = observationBean.getObservation(observationId);
if(o == null)
{
return Response.status(Status.NOT_FOUND).build();
}
// Which organization does this observation belong to?
- VipsLogicUser observer = SessionControllerGetter.getUserBean().getVipsLogicUser(o.getUserId());
- o.setObservationDataSchema(SessionControllerGetter.getObservationBean().getObservationDataSchema(observer.getOrganizationId().getOrganizationId(), o.getOrganismId()));
+ VipsLogicUser observer = userBean.getVipsLogicUser(o.getUserId());
+ o.setObservationDataSchema(observationBean.getObservationDataSchema(observer.getOrganizationId().getOrganizationId(), o.getOrganismId()));
VipsLogicUser user = (VipsLogicUser) httpServletRequest.getSession().getAttribute("user");
if(user == null && userUUID != null)
{
- user = SessionControllerGetter.getUserBean().findVipsLogicUser(UUID.fromString(userUUID));
+ user = userBean.findVipsLogicUser(UUID.fromString(userUUID));
}
// Modification of location information:
// 1) If location is private, only the owner or super users/org admins may view them
@@ -409,8 +414,8 @@ public class ObservationService {
List<Observation> intermediary = new ArrayList<>();
intermediary.add(o);
intermediary = this.maskObservations(o.getPolygonService(),
- SessionControllerGetter.getObservationBean().getObservationsWithLocations(
- SessionControllerGetter.getObservationBean().getObservationsWithGeoInfo(intermediary)
+ observationBean.getObservationsWithLocations(
+ observationBean.getObservationsWithGeoInfo(intermediary)
)
);
o = intermediary.get(0);
@@ -433,7 +438,7 @@ public class ObservationService {
{
return Response.status(Response.Status.UNAUTHORIZED).build();
}
- if(!SessionControllerGetter.getUserBean().authorizeUser(user,
+ if(!userBean.authorizeUser(user,
VipsLogicRole.OBSERVER,
VipsLogicRole.OBSERVATION_AUTHORITY,
VipsLogicRole.ORGANIZATION_ADMINISTRATOR,
@@ -443,7 +448,7 @@ public class ObservationService {
{
return Response.status(Response.Status.FORBIDDEN).build();
}
- SessionControllerGetter.getObservationBean().deleteGisObservationByGis(gisId);
+ observationBean.deleteGisObservationByGis(gisId);
return Response.noContent().build();
}
@@ -461,14 +466,14 @@ public class ObservationService {
try
{
// Create the Observation
- Observation observation = SessionControllerGetter.getObservationBean().getObservationFromGeoJSON(geoJSON);
+ Observation observation = observationBean.getObservationFromGeoJSON(geoJSON);
VipsLogicUser user = (VipsLogicUser) httpServletRequest.getSession().getAttribute("user");
// If no user, send error message back to client
if(user == null)
{
return Response.status(Response.Status.UNAUTHORIZED).build();
}
- if(!SessionControllerGetter.getUserBean().authorizeUser(user,
+ if(!userBean.authorizeUser(user,
VipsLogicRole.OBSERVER,
VipsLogicRole.OBSERVATION_AUTHORITY,
VipsLogicRole.ORGANIZATION_ADMINISTRATOR,
@@ -481,7 +486,7 @@ public class ObservationService {
observation.setUserId(user.getUserId());
observation.setStatusChangedByUserId(user.getUserId());
observation.setStatusChangedTime(new Date());
- observation = SessionControllerGetter.getObservationBean().storeObservation(observation);
+ observation = observationBean.storeObservation(observation);
GISEntityUtil gisUtil = new GISEntityUtil();
return Response.created(URI.create("/observation/" + observation.getObservationId())).entity(gisUtil.getGeoJSONFromObservation(observation)).build();
}catch (IOException ex)
@@ -500,7 +505,7 @@ public class ObservationService {
@Produces("text/plain;charset=UTF-8")
public Response getFirstObservation(@PathParam("organismId") Integer organismId)
{
- Date firstObsTime = SessionControllerGetter.getObservationBean().getFirstObservationTime(organismId);
+ Date firstObsTime = observationBean.getFirstObservationTime(organismId);
return firstObsTime != null ? Response.ok().entity(firstObsTime).build()
: Response.status(404).entity("No observations of organism with id=" + organismId).build();
}
@@ -516,7 +521,7 @@ public class ObservationService {
public Response getDateOfLastOrganismSystemUpdate()
{
HashMap<String, Object> result = new HashMap<>();
- Instant lastUpdated = SessionControllerGetter.getOrganismBean().getLatestUpdateOfOrganisms();
+ Instant lastUpdated = organismBean.getLatestUpdateOfOrganisms();
result.put("lastUpdated", lastUpdated != null ? lastUpdated: "1970-01-01T00:00:00Z");
return Response.ok().entity(result).build();
}
@@ -540,7 +545,7 @@ public class ObservationService {
return retVal;
}
// Else: This is a registered user without special privileges. Show public observations + user's own
- retVal.addAll(SessionControllerGetter.getObservationBean().getObservationsForUser(user));
+ retVal.addAll(observationBean.getObservationsForUser(user));
return retVal;
}
diff --git a/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java b/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java
index 2569197651fdbaa9bbb0e78e23040fa6696f517b..ea71a49012d0bd07b15dd309853a343206de5409 100755
--- a/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java
+++ b/src/main/java/no/nibio/vips/logic/service/VIPSMobileService.java
@@ -31,6 +31,7 @@ import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.TimeZone;
+import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@@ -40,6 +41,12 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import no.nibio.vips.entity.Result;
+import no.nibio.vips.logic.controller.session.ForecastBean;
+import no.nibio.vips.logic.controller.session.MessageBean;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.OrganismBean;
+import no.nibio.vips.logic.controller.session.PointOfInterestBean;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.CropCategory;
import no.nibio.vips.logic.entity.ForecastConfiguration;
import no.nibio.vips.logic.entity.ForecastSummary;
@@ -78,6 +85,19 @@ public class VIPSMobileService {
@Context
private HttpServletRequest httpServletRequest;
+ @EJB
+ MessageBean messageBean;
+ @EJB
+ ObservationBean observationBean;
+ @EJB
+ OrganismBean organismBean;
+ @EJB
+ ForecastBean forecastBean;
+ @EJB
+ PointOfInterestBean pointOfInterestBean;
+ @EJB
+ UserBean userBean;
+
// TODO: Add observation messages
@GET
@Path("melding")
@@ -89,7 +109,7 @@ public class VIPSMobileService {
{
Date datePublishedFrom = SystemTime.getSystemTime();
Date datePublishedTo = datePublishedFrom;
- List<Message> messageList = SessionControllerGetter.getMessageBean().getMessageList(organizationId, datePublishedFrom, datePublishedTo);
+ List<Message> messageList = messageBean.getMessageList(organizationId, datePublishedFrom, datePublishedTo);
List<VIPSMobileMessage> retVal = new ArrayList<>();
for(Message message: messageList)
@@ -151,7 +171,7 @@ public class VIPSMobileService {
Calendar cal = Calendar.getInstance();
cal.setTime(datePublishedFrom);
Integer observationMessageTagId = 1;
- List<Observation> broadcastObservations = SessionControllerGetter.getObservationBean().getBroadcastObservations(organizationId, cal.get(Calendar.YEAR));
+ List<Observation> broadcastObservations = observationBean.getBroadcastObservations(organizationId, cal.get(Calendar.YEAR));
// Making an observation message valid for 3 months by default
broadcastObservations.stream().filter(
@@ -187,12 +207,12 @@ public class VIPSMobileService {
@QueryParam("locale") String locale
)
{
- List<Organism> cropList = SessionControllerGetter.getOrganismBean().getAllCrops();
+ List<Organism> cropList = organismBean.getAllCrops();
Map<Integer, Organism> allCrops = new HashMap<>();
cropList.forEach((crop) -> {
allCrops.put(crop.getOrganismId(), crop);
});
- List<CropCategory> cropCategories = SessionControllerGetter.getOrganismBean().getCropCategories(organizationId);
+ List<CropCategory> cropCategories = organismBean.getCropCategories(organizationId);
List<VIPSMobileCropCategory> retVal = new ArrayList<>();
cropCategories.stream().forEach(
cc -> {
@@ -224,7 +244,7 @@ public class VIPSMobileService {
}
// Get model info
- Map<String, ModelInformation> modelInformationMap = SessionControllerGetter.getForecastBean().getIndexedModelInformation();
+ Map<String, ModelInformation> modelInformationMap = forecastBean.getIndexedModelInformation();
TimeZone timeZone = timeZoneStr != null ? TimeZone.getTimeZone(timeZoneStr)
: TimeZone.getDefault();
@@ -240,7 +260,7 @@ public class VIPSMobileService {
List<VIPSMobilePresentation> retVal = new ArrayList<>();
if(!parsedIds.isEmpty())
{
- List<ForecastConfiguration> configsWithSummaries = SessionControllerGetter.getForecastBean().getForecastConfigurationWithSummaries(parsedIds);
+ List<ForecastConfiguration> configsWithSummaries = forecastBean.getForecastConfigurationWithSummaries(parsedIds);
// Initializing the array of summaries
Date today = new WeatherUtil().normalizeToExactDate(SystemTime.getSystemTime(), timeZone);
List<Date> datesList = new ArrayList<>();
@@ -346,8 +366,8 @@ public class VIPSMobileService {
cal.set(Calendar.MONTH, Calendar.JANUARY);
Date from = cal.getTime();
- PointOfInterestWeatherStation station = (PointOfInterestWeatherStation) SessionControllerGetter.getPointOfInterestBean().getPointOfInterest(klimastasjonId);
- List<ForecastConfiguration> forecasts = SessionControllerGetter.getForecastBean().getForecastConfigurations(station, from, to);
+ PointOfInterestWeatherStation station = (PointOfInterestWeatherStation) pointOfInterestBean.getPointOfInterest(klimastasjonId);
+ List<ForecastConfiguration> forecasts = forecastBean.getForecastConfigurations(station, from, to);
List<VIPSMobileForecast> retVal = new ArrayList<>();
for(ForecastConfiguration forecast:forecasts)
{
@@ -415,7 +435,7 @@ public class VIPSMobileService {
}
// First: Get all users for organization
- List<VipsLogicUser> organizationUsers = SessionControllerGetter.getUserBean().getUsersByOrganization(organizationId);
+ List<VipsLogicUser> organizationUsers = userBean.getUsersByOrganization(organizationId);
// Then: Get forecasts for these users, collate and return
List<ForecastConfiguration> forecasts = new ArrayList<>();
@@ -423,8 +443,8 @@ public class VIPSMobileService {
{
Integer userId = user.getUserId();
List<ForecastConfiguration> result = cropOrganismIds != null && ! cropOrganismIds.isEmpty() ?
- SessionControllerGetter.getForecastBean().getForecastConfigurationsForUserAndCropsAndDate(userId,cropOrganismIds, from, to)
- : SessionControllerGetter.getForecastBean().getForecastConfigurationsForUserAndDate(userId, from, to);
+ forecastBean.getForecastConfigurationsForUserAndCropsAndDate(userId,cropOrganismIds, from, to)
+ : forecastBean.getForecastConfigurationsForUserAndDate(userId, from, to);
if(forecasts == null)
forecasts = result;
else
diff --git a/src/main/java/no/nibio/vips/logic/startup/StartupListener.java b/src/main/java/no/nibio/vips/logic/startup/StartupListener.java
index 6bf3ba3f3daaaa6a1c4b713ae410dddac51f7a60..334f052cbb5a4ab2c8f58e72332d5f732c47b97c 100755
--- a/src/main/java/no/nibio/vips/logic/startup/StartupListener.java
+++ b/src/main/java/no/nibio/vips/logic/startup/StartupListener.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 NIBIO <http://www.nibio.no/>.
+ * Copyright (c) 2022 NIBIO <http://www.nibio.no/>.
*
* This file is part of VIPSLogic.
* VIPSLogic is free software: you can redistribute it and/or modify
@@ -20,22 +20,27 @@
package no.nibio.vips.logic.startup;
import javax.annotation.Resource;
+import javax.ejb.EJB;
import javax.servlet.ServletContextEvent;
import javax.sql.DataSource;
-import no.nibio.vips.logic.util.SessionControllerGetter;
+import no.nibio.vips.logic.controller.session.SchedulingBean;
import org.flywaydb.core.Flyway;
/**
* This class is created and method contextInitialized called when the application
* is deployed (either at startup of application container or when redeploying the app)
*
- * @copyright 2013 {@link http://www.nibio.no NIBIO}
+ * @copyright 2013-2022 {@link http://www.nibio.no NIBIO}
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class StartupListener implements javax.servlet.ServletContextListener{
@Resource(lookup="java:/jboss/datasources/vipslogic")
DataSource vipslogicDS;
+
+ @EJB
+ SchedulingBean schedulingBean;
+
/**
* Called when the application
* is deployed (either at startup of application container or when redeploying the app)
@@ -50,11 +55,11 @@ public class StartupListener implements javax.servlet.ServletContextListener{
flyway.setDataSource(vipslogicDS);
flyway.migrate();
- SessionControllerGetter.getSchedulingBean().initSystemScheduler();
+ schedulingBean.initSystemScheduler();
if(System.getProperty("no.nibio.vips.logic.START_SCHEDULING_ON_BOOT").equals("true"))
{
System.out.println("VIPSLogic starting scheduling services");
- SessionControllerGetter.getSchedulingBean().startSystemScheduler();
+ schedulingBean.startSystemScheduler();
}
else
{
@@ -72,6 +77,6 @@ public class StartupListener implements javax.servlet.ServletContextListener{
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("VIPSLogic system shutting down");
// Shutting down scheduler
- SessionControllerGetter.getSchedulingBean().stopSystemScheduler();
+ schedulingBean.stopSystemScheduler();
}
}
diff --git a/src/main/java/no/nibio/vips/logic/util/SessionControllerGetter.java b/src/main/java/no/nibio/vips/logic/util/SessionControllerGetter.java
index b214f0cbff880db06ca5c8111b1179fea24d66ba..51129a619791b6c49cd067d054b031def095cbd4 100755
--- a/src/main/java/no/nibio/vips/logic/util/SessionControllerGetter.java
+++ b/src/main/java/no/nibio/vips/logic/util/SessionControllerGetter.java
@@ -38,7 +38,7 @@ import no.nibio.vips.logic.modules.applefruitmoth.AppleFruitMothBean;
public class SessionControllerGetter {
private static final String JNDI_PATH = "java:global/VIPSLogic-1.0-SNAPSHOT/";
-
+/*
public static PointOfInterestBean getPointOfInterestBean()
{
try
@@ -176,4 +176,5 @@ public class SessionControllerGetter {
//System.out.println("JNDI-path=" + retVal);
return retVal;
}
+*/
}
diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java
index 66483d904e11ae8b474e6c71b4ecc4d62285b6d3..d02ba09defb12bf34bf9acd9fd5d9df63783e53f 100755
--- a/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java
+++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java
@@ -19,16 +19,10 @@
package no.nibio.vips.observationdata;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
import com.ibm.icu.util.ULocale;
import com.webcohesion.enunciate.metadata.Facet;
import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.ResourceBundle;
+import javax.ejb.EJB;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
@@ -39,11 +33,11 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
-import no.nibio.vips.logic.i18n.SessionLocaleUtil;
-import no.nibio.vips.logic.util.SessionControllerGetter;
+import no.nibio.vips.logic.controller.session.ObservationBean;
+import no.nibio.vips.logic.controller.session.UserBean;
/**
- * @copyright 2016 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2016-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
@Facet("restricted")
@@ -52,6 +46,11 @@ public class ObservationDataService {
@PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em;
+ @EJB
+ UserBean userBean;
+ @EJB
+ ObservationBean observationBean;
+
@Context
private HttpServletRequest httpServletRequest;
@@ -71,9 +70,9 @@ public class ObservationDataService {
try
{
// Try to find schema for given organism/organization
- ObservationDataSchema ods = SessionControllerGetter.getObservationBean().getObservationDataSchema(organizationId, organismId);
- ULocale locale = new ULocale(SessionControllerGetter.getUserBean().getOrganization(organizationId).getDefaultLocale());
- ods = SessionControllerGetter.getObservationBean().getLocalizedObservationDataSchema(ods, httpServletRequest, locale);
+ ObservationDataSchema ods = observationBean.getObservationDataSchema(organizationId, organismId);
+ ULocale locale = new ULocale(userBean.getOrganization(organizationId).getDefaultLocale());
+ ods = observationBean.getLocalizedObservationDataSchema(ods, httpServletRequest, locale);
return Response.ok().entity(ods.getDataSchema()).build();
}
diff --git a/src/main/java/no/nibio/web/forms/FormValidator.java b/src/main/java/no/nibio/web/forms/FormValidator.java
index 8490ea6ea723986c40a038ba06f47bfb5564d529..ee267cfac0b53d964b1993f9bd4e05e0bedc27bc 100755
--- a/src/main/java/no/nibio/web/forms/FormValidator.java
+++ b/src/main/java/no/nibio/web/forms/FormValidator.java
@@ -37,11 +37,12 @@ import java.util.List;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import javax.ejb.EJB;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import no.nibio.vips.logic.authenticate.PasswordValidationException;
+import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.i18n.SessionLocaleUtil;
-import no.nibio.vips.logic.util.SessionControllerGetter;
import org.apache.commons.validator.EmailValidator;
/**
@@ -52,11 +53,14 @@ import org.apache.commons.validator.EmailValidator;
* client side validation). They use the same JSON file for form validation.
* Changes in logic server side should be reflected client side.
*
- * @copyright 2013 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2013-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/
public class FormValidator {
+ @EJB
+ static UserBean userBean;
+
public static String RELATION_TYPE_EQUALS = "EQUALS";
public static String RELATION_TYPE_AFTER = "AFTER";
@@ -229,7 +233,7 @@ public class FormValidator {
{
try
{
- SessionControllerGetter.getUserBean().isPasswordValid(field.getWebValue(), ULocale.forLocale(resourceBundle.getLocale()));
+ userBean.isPasswordValid(field.getWebValue(), ULocale.forLocale(resourceBundle.getLocale()));
}
catch(PasswordValidationException ex)
{
diff --git a/src/main/webapp/test/testbatch.jsp b/src/main/webapp/test/testbatch.jsp
index f18b45e9dcc8edb8412c8fd2c72b0cc61f038c63..76dea8f5f811f5bafacdd0a9b63ff28badecc4ac 100755
--- a/src/main/webapp/test/testbatch.jsp
+++ b/src/main/webapp/test/testbatch.jsp
@@ -16,7 +16,7 @@
<%@page import="no.nibio.vips.logic.util.SessionControllerGetter"%>
<%
ForecastBean forecastBean = SessionControllerGetter.getForecastBean();
- UserBean userBean = SessionControllerGetter.getUserBean();
+ UserBean userBean = userBean;
Organization organization = userBean.getOrganization(2); // NIBIO plantehelse
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Calendar.JUNE);
@@ -43,7 +43,7 @@
%>
<ul>
<%
- for(Organization org : SessionControllerGetter.getUserBean().getOrganizations())
+ for(Organization org : userBean.getOrganizations())
{
List<ForecastConfiguration> currentForecastConfigurations = SessionControllerGetter.getForecastBean().getForecastConfigurationsValidAtTime(org, SystemTime.getSystemTime());
for(ForecastConfiguration forecastConfiguration:currentForecastConfigurations)
diff --git a/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java b/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java
index 553e67bfccdbc986ee6eba939620ab285c41dc35..abaca8508ee6774b253a8428068bb6ff76f26dec 100755
--- a/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java
+++ b/src/test/java/no/nibio/vips/logic/messaging/UniversalMessagingTest.java
@@ -133,7 +133,7 @@ public class UniversalMessagingTest {
}
um.setDistributionList(rList);
- ResteasyClient client = new ResteasyClientBuilder().build();
+ ResteasyClient client = (ResteasyClient) ResteasyClientBuilder.newClient();
//client.register(new RESTAuthenticator("user", "userPass"));
client.register(new RESTAuthenticator("VIPSLogic", "plmoknijbuhv000"));
//ResteasyWebTarget target = client.target("http://kart13utv.ad.skogoglandskap.no:8080");