Skip to content

Commit 5ae94d5

Browse files
committed
Refactoring ce-initializers.xml with InitializerKnowageServlet, cache.xml in SpagoBICacheConfiguration and TreeInitializer
1 parent a92f790 commit 5ae94d5

9 files changed

Lines changed: 288 additions & 194 deletions

File tree

knowage-core/src/main/java/it/eng/spagobi/analiticalmodel/functionalitytree/init/TreeInitializer.java

Lines changed: 0 additions & 143 deletions
This file was deleted.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package it.eng.spagobi.commons.initializers.metadata;
2+
3+
import java.util.ArrayList;
4+
import java.util.Iterator;
5+
import java.util.List;
6+
7+
import org.apache.logging.log4j.LogManager;
8+
import org.apache.logging.log4j.Logger;
9+
import org.hibernate.Session;
10+
11+
import it.eng.spago.base.SourceBean;
12+
import it.eng.spagobi.analiticalmodel.functionalitytree.bo.LowFunctionality;
13+
import it.eng.spagobi.analiticalmodel.functionalitytree.dao.ILowFunctionalityDAO;
14+
import it.eng.spagobi.commons.bo.Role;
15+
import it.eng.spagobi.commons.dao.DAOFactory;
16+
import it.eng.spagobi.commons.dao.ITenantsDAO;
17+
import it.eng.spagobi.commons.metadata.SbiTenant;
18+
import it.eng.spagobi.utilities.assertion.Assert;
19+
import it.eng.spagobi.utilities.exceptions.SpagoBIRuntimeException;
20+
21+
public class TreeInitializer extends SpagoBIInitializer {
22+
23+
private static final Logger logger = LogManager.getLogger(TreeInitializer.class);
24+
25+
private final List<SbiTenant> tenants = new ArrayList<>();
26+
27+
public TreeInitializer() {
28+
targetComponentName = "Tree";
29+
configurationFileName = "it/eng/spagobi/commons/initializers/metadata/config/tree.xml";
30+
}
31+
32+
public List<SbiTenant> getTenants() {
33+
return tenants;
34+
}
35+
36+
@Override
37+
public void init(SourceBean config, Session hibernateSession) {
38+
logger.debug("IN");
39+
try {
40+
if (tenants.isEmpty()) {
41+
ITenantsDAO tenantsDAO = DAOFactory.getTenantsDAO();
42+
tenants.addAll(tenantsDAO.loadAllTenants());
43+
}
44+
45+
for (SbiTenant tenant : tenants) {
46+
initialize(tenant);
47+
}
48+
} catch (Exception e) {
49+
logger.error("Error while initializing tree structure", e);
50+
throw new SpagoBIRuntimeException("Error while initializing tree structure", e);
51+
}
52+
logger.debug("OUT");
53+
54+
}
55+
56+
private void initialize(SbiTenant tenant) {
57+
Assert.assertNotNull(tenant, "Tenant in input cannot be null");
58+
try {
59+
ILowFunctionalityDAO functionalityDAO = DAOFactory.getLowFunctionalityDAO();
60+
functionalityDAO.setTenant(tenant.getName());
61+
List functions = functionalityDAO.loadAllLowFunctionalities(false);
62+
if (functions != null && functions.size() > 0) {
63+
logger.debug("Tree already initialized");
64+
} else {
65+
SourceBean configuration = getConfiguration();
66+
List nodes = configuration.getAttributeAsList("TREE_INITIAL_STRUCTURE.NODE");
67+
Iterator it = nodes.iterator();
68+
while (it.hasNext()) {
69+
SourceBean node = (SourceBean) it.next();
70+
String code = (String) node.getAttribute("code");
71+
String name = (String) node.getAttribute("name");
72+
String description = (String) node.getAttribute("description");
73+
String codeType = (String) node.getAttribute("codeType");
74+
String parentPath = (String) node.getAttribute("parentPath");
75+
LowFunctionality functionality = new LowFunctionality();
76+
functionality.setCode(code);
77+
functionality.setName(name);
78+
functionality.setDescription(description);
79+
functionality.setCodType(codeType);
80+
functionality.setPath(parentPath + "/" + code);
81+
if (parentPath != null && !parentPath.trim().equals("")) {
82+
// if it is not the root load the id of the parent path
83+
LowFunctionality parentFunctionality = functionalityDAO.loadLowFunctionalityByPath(parentPath, false);
84+
functionality.setParentId(parentFunctionality.getId());
85+
} else {
86+
// if it is the root the parent path id is set to null
87+
functionality.setParentId(null);
88+
}
89+
// sets no permissions
90+
functionality.setDevRoles(new Role[0]);
91+
functionality.setExecRoles(new Role[0]);
92+
functionality.setTestRoles(new Role[0]);
93+
functionality.setCreateRoles(new Role[0]);
94+
functionalityDAO.insertLowFunctionality(functionality, null);
95+
}
96+
}
97+
} catch (Exception e) {
98+
logger.error("Error while initializing tree structure in tenant " + tenant.getName(), e);
99+
throw new SpagoBIRuntimeException("Error while initializing tree structure in tenant " + tenant.getName(), e);
100+
}
101+
102+
}
103+
104+
}
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/*
2+
* Knowage, Open Source Business Intelligence suite
3+
* Copyright (C) 2016 Engineering Ingegneria Informatica S.p.A.
4+
*
5+
* Knowage is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU Affero General Public License as published by
7+
* the Free Software Foundation, either version 3 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* Knowage is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU Affero General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU Affero General Public License
16+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
package it.eng.spagobi.commons.services;
19+
20+
import javax.servlet.ServletConfig;
21+
import javax.servlet.ServletException;
22+
import javax.servlet.http.HttpServlet;
23+
24+
import org.apache.log4j.Logger;
25+
26+
import it.eng.knowage.encryption.DataEncryptionInitializer;
27+
import it.eng.spagobi.commons.initializers.caching.CachingInitializer;
28+
import it.eng.spagobi.commons.initializers.metadata.CategoriesInitializer;
29+
import it.eng.spagobi.commons.initializers.metadata.MetadataInitializer;
30+
import it.eng.spagobi.commons.initializers.metadata.TreeInitializer;
31+
import it.eng.spagobi.security.init.SecurityInitializer;
32+
import it.eng.spagobi.tools.scheduler.init.CleanAuditQuartzInitializer;
33+
import it.eng.spagobi.tools.scheduler.init.CleanCacheQuartzInitializer;
34+
import it.eng.spagobi.tools.scheduler.init.QuartzInitializer;
35+
import it.eng.spagobi.tools.scheduler.init.ResourceExportFolderSchedulerInitializer;
36+
import it.eng.spagobi.tools.scheduler.init.RestEventQuartzInitializer;
37+
38+
39+
public class InitializerKnowageServlet extends HttpServlet {
40+
41+
private static transient Logger logger = Logger.getLogger(InitializerKnowageServlet.class);
42+
43+
@Override
44+
public void init(ServletConfig config) throws ServletException {
45+
super.init(config);
46+
logger.debug("Initializing InitializerKnowageServlet...");
47+
48+
MetadataInitializer metadataInitializer = new MetadataInitializer();
49+
metadataInitializer.init(null);
50+
51+
CategoriesInitializer categoriesInitializer = new CategoriesInitializer();
52+
categoriesInitializer.init(null);
53+
54+
TreeInitializer treeInitializer = new TreeInitializer();
55+
treeInitializer.init(null);
56+
57+
DataEncryptionInitializer dataEncryptionInitializer = new DataEncryptionInitializer();
58+
dataEncryptionInitializer.init(null);
59+
60+
SecurityInitializer securityInitializer = new SecurityInitializer();
61+
securityInitializer.init(null);
62+
63+
QuartzInitializer quartzInitializer = new QuartzInitializer();
64+
quartzInitializer.init(null);
65+
66+
CleanCacheQuartzInitializer cleanCacheQuartzInitializer = new CleanCacheQuartzInitializer();
67+
cleanCacheQuartzInitializer.init(null);
68+
69+
RestEventQuartzInitializer restEventQuartzInitializer = new RestEventQuartzInitializer();
70+
restEventQuartzInitializer.init(null);
71+
72+
CachingInitializer cachingInitializer = new CachingInitializer();
73+
cachingInitializer.init(null);
74+
75+
ResourceExportFolderSchedulerInitializer resourceExportFolderSchedulerInitializer = new ResourceExportFolderSchedulerInitializer();
76+
resourceExportFolderSchedulerInitializer.init(null);
77+
78+
CleanAuditQuartzInitializer cleanAuditQuartzInitializer = new CleanAuditQuartzInitializer();
79+
cleanAuditQuartzInitializer.init(null);
80+
81+
}
82+
83+
84+
}

0 commit comments

Comments
 (0)