Skip to content

Commit 5040325

Browse files
committed
feat: extract persistence module
1 parent c9a7628 commit 5040325

File tree

10 files changed

+62
-29
lines changed

10 files changed

+62
-29
lines changed

backend/pom.xml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,7 @@
2121
</dependency>
2222
<dependency>
2323
<groupId>io.quarkus</groupId>
24-
<artifactId>quarkus-hibernate-orm-panache</artifactId>
25-
</dependency>
26-
<dependency>
27-
<groupId>io.quarkus</groupId>
28-
<artifactId>quarkus-scheduler</artifactId>
29-
</dependency>
30-
<dependency>
31-
<groupId>io.quarkiverse.jdbc</groupId>
32-
<artifactId>quarkus-jdbc-sqlite4j</artifactId>
33-
<version>${sqlite4j.version}</version>
24+
<artifactId>quarkus-arc</artifactId>
3425
</dependency>
3526
<dependency>
3627
<groupId>io.quarkus</groupId>

persistence/pom.xml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>net.laprun.sustainability</groupId>
8+
<artifactId>power-server-parent</artifactId>
9+
<version>0.3.0-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>power-server-persistence</artifactId>
13+
<name>power-server : persistence</name>
14+
<description>Output measures to a database</description>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>net.laprun.sustainability</groupId>
19+
<artifactId>power-server-metadata</artifactId>
20+
<version>${project.version}</version>
21+
</dependency>
22+
<dependency>
23+
<groupId>io.quarkus</groupId>
24+
<artifactId>quarkus-hibernate-orm-panache</artifactId>
25+
</dependency>
26+
<dependency>
27+
<groupId>io.quarkus</groupId>
28+
<artifactId>quarkus-scheduler</artifactId>
29+
</dependency>
30+
<dependency>
31+
<groupId>io.quarkiverse.jdbc</groupId>
32+
<artifactId>quarkus-jdbc-sqlite4j</artifactId>
33+
<version>${sqlite4j.version}</version>
34+
</dependency>
35+
</dependencies>
36+
37+
<build>
38+
<plugins>
39+
<plugin>
40+
<groupId>net.revelc.code.formatter</groupId>
41+
<artifactId>formatter-maven-plugin</artifactId>
42+
<configuration>
43+
<configFile>../contributing/eclipse-format.xml</configFile>
44+
</configuration>
45+
</plugin>
46+
</plugins>
47+
</build>
48+
49+
</project>

backend/src/main/java/net/laprun/sustainability/power/persistence/Measure.java renamed to persistence/src/main/java/net/laprun/sustainability/power/persistence/Measure.java

File renamed without changes.

backend/src/main/java/net/laprun/sustainability/power/persistence/Persistence.java renamed to persistence/src/main/java/net/laprun/sustainability/power/persistence/Persistence.java

File renamed without changes.

backend/src/main/java/net/laprun/sustainability/power/persistence/SQLiteFilePersister.java renamed to persistence/src/main/java/net/laprun/sustainability/power/persistence/SQLiteFilePersister.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
@Singleton
2626
public class SQLiteFilePersister {
2727
private final AtomicBoolean executing = new AtomicBoolean(false);
28-
@ConfigProperty(name = "power-server.db.backup.location")
28+
@ConfigProperty(name = "power-server.db.backup.location", defaultValue = "power-server-db.sqlite")
2929
String dbFilelocation;
3030
@Inject
3131
DataSource dataSource;

persistence/src/main/resources/META-INF/beans.xml

Whitespace-only changes.

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
<module>server</module>
7777
<module>cli</module>
7878
<module>if-manifest-export</module>
79+
<module>persistence</module>
7980
</modules>
8081

8182
<dependencyManagement>

server/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
<artifactId>power-server-backend</artifactId>
2020
<version>${project.version}</version>
2121
</dependency>
22+
<dependency>
23+
<groupId>net.laprun.sustainability</groupId>
24+
<artifactId>power-server-persistence</artifactId>
25+
<version>${project.version}</version>
26+
</dependency>
2227
<dependency>
2328
<groupId>io.quarkus</groupId>
2429
<artifactId>quarkus-rest-jackson</artifactId>

server/src/main/java/net/laprun/sustainability/power/PowerMeasurer.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
import io.smallrye.mutiny.Multi;
1111
import io.smallrye.mutiny.infrastructure.Infrastructure;
12-
import io.smallrye.mutiny.subscription.Cancellable;
13-
import net.laprun.sustainability.power.persistence.Persistence;
1412
import net.laprun.sustainability.power.sensors.Measures;
1513
import net.laprun.sustainability.power.sensors.PowerSensor;
1614
import net.laprun.sustainability.power.sensors.RegisteredPID;
@@ -22,9 +20,6 @@ public class PowerMeasurer {
2220
@Inject
2321
PowerSensor sensor;
2422

25-
@Inject
26-
Persistence persistence;
27-
2823
@ConfigProperty(name = "net.laprun.sustainability.power.sampling-period", defaultValue = DEFAULT_SAMPLING_PERIOD)
2924
Duration samplingPeriod;
3025

@@ -40,14 +35,6 @@ public Multi<SensorMeasure> uncheckedStream(long pid) throws Exception {
4035
return periodicSensorCheck.map(measures -> measures.getOrDefault(registeredPID));
4136
}
4237

43-
public Cancellable startTrackingApp(String appName, long pid) throws Exception {
44-
return uncheckedStream(pid).subscribe().with(m -> persistence.save(m, appName));
45-
}
46-
47-
public Cancellable startTrackingProcess(Process process) throws Exception {
48-
return startTrackingApp(process.info().commandLine().orElseThrow(), process.pid());
49-
}
50-
5138
private RegisteredPID track(long pid) throws Exception {
5239
if (!sensor.isStarted()) {
5340
sensor.start(samplingPeriod.toMillis());
@@ -79,8 +66,4 @@ public SensorMetadata metadata() {
7966
public Duration getSamplingPeriod() {
8067
return samplingPeriod;
8168
}
82-
83-
public Persistence persistence() {
84-
return persistence;
85-
}
8669
}

server/src/main/java/net/laprun/sustainability/power/PowerResource.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,16 @@
1818
import io.quarkus.runtime.StartupEvent;
1919
import io.smallrye.mutiny.Multi;
2020
import net.laprun.sustainability.power.persistence.Measure;
21+
import net.laprun.sustainability.power.persistence.Persistence;
2122

2223
@Path("/power")
2324
public class PowerResource {
2425
@Inject
2526
PowerMeasurer measurer;
2627

28+
@Inject
29+
Persistence persistence;
30+
2731
public void onStartup(@Observes StartupEvent event) {
2832
Log.info("\nConfigured sampling period: " + samplingPeriod() +
2933
"\nDetected metadata:\n" + metadata());
@@ -44,7 +48,7 @@ public Multi<SensorMeasure> streamMeasuresFor(@PathParam("pid") String pid) thro
4448
@Path("start/{appName}/{pid}")
4549
public void startMeasure(@PathParam("appName") String appName, @PathParam("pid") String pid) throws Exception {
4650
try {
47-
measurer.startTrackingApp(appName, measurer.validPIDOrFail(pid));
51+
measurer.uncheckedStream(measurer.validPIDOrFail(pid)).subscribe().with(m -> persistence.save(m, appName));
4852
} catch (IllegalArgumentException e) {
4953
throw new NotFoundException("Unknown process: " + pid);
5054
}

0 commit comments

Comments
 (0)