File size: 2,938 Bytes
5a81b95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
 * CIA (Citizen Intelligence Agency) Data Service Implementation Module.
 * 
 * <p>This module provides the core data persistence and management implementation
 * for the CIA application. It handles database operations, caching, search functionality,
 * and audit tracking through various technology integrations.</p>
 * 
 * <p>Key features include:</p>
 * <ul>
 *   <li>Database persistence using Hibernate ORM and JPA</li>
 *   <li>Full-text search capabilities via Hibernate Search and Lucene</li>
 *   <li>Data auditing and versioning through Javers</li>
 *   <li>AWS Secrets Manager integration for secure credential management</li>
 *   <li>Caching support with EhCache</li>
 *   <li>Transaction management with Spring</li>
 * </ul>
 * 
 * <p>The module exports two packages:</p>
 * <ul>
 *   <li>{@code com.hack23.cia.service.data.impl} - Main implementation classes</li>
 *   <li>{@code com.hack23.cia.service.data.impl.util} - Utility classes for data operations</li>
 * </ul>
 * 
 * <p>This module is part of the CIA (Citizen Intelligence Agency) project, which focuses on
 * monitoring political figures and institutions while providing insights into financial
 * performance, risk metrics, and political trends.</p>
 * 
 * @provides com.hack23.cia.service.data.api Implementation of CIA data service API
 * @see com.hack23.cia.service.data.api
 */
open module com.hack23.cia.service.data.impl {
	exports com.hack23.cia.service.data.impl;
	exports com.hack23.cia.service.data.impl.util;

	requires java.xml.bind;
	requires jakarta.activation;
	requires transitive java.sql;
	requires java.desktop;
	requires java.annotation;
	requires org.slf4j;
	requires transitive spring.context;
	requires spring.context.support;
	requires com.fasterxml.jackson.core;
	
	requires transitive spring.beans;
	requires spring.jdbc;
	requires spring.tx;
	requires transitive spring.core;	
	requires org.postgresql.jdbc;
	requires transitive java.naming;
	
	requires transitive java.persistence;  // Changed from requires java.persistence
	requires transitive org.hibernate.orm.core;
	requires transitive java.transaction;
	requires ehcache;
	requires cache.api;

	requires spring.security.core;

	requires org.hibernate.search.engine;
	requires org.hibernate.search.backend.lucene;
	requires org.hibernate.search.mapper.pojo;
	requires org.hibernate.search.mapper.orm;	
	
	requires com.fasterxml.jackson.databind;	
	requires aws.secretsmanager.caching.java;
	requires aws.secretsmanager.jdbc;
	requires aws.java.sdk.secretsmanager;
	requires aws.java.sdk.core;
	
    requires software.amazon.awssdk.core;
    requires software.amazon.awssdk.services.secretsmanager;

	requires org.apache.commons.lang3;
	requires lucene.analyzers.common;

	requires javers.spring;
	requires javers.spring.jpa;
	requires javers.persistence.sql;
	requires javers.core;


	requires com.google.common;

    requires transitive com.hack23.cia.service.data.api;
}