Skip to content

Commit 9944c42

Browse files
SPA settings
1 parent 89c9280 commit 9944c42

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.wttech.aem.acm.core.gui;
2+
3+
4+
import org.osgi.service.component.annotations.Activate;
5+
import org.osgi.service.component.annotations.Component;
6+
import org.osgi.service.component.annotations.Modified;
7+
import org.osgi.service.metatype.annotations.AttributeDefinition;
8+
import org.osgi.service.metatype.annotations.Designate;
9+
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
10+
11+
import java.io.Serializable;
12+
13+
@Component(service = SpaSettings.class, immediate = true)
14+
@Designate(ocd = SpaSettings.Config.class)
15+
public class SpaSettings implements Serializable {
16+
17+
private long appStateInterval;
18+
19+
private long executionPollInterval;
20+
21+
@Activate
22+
@Modified
23+
protected void activate(Config config) {
24+
this.appStateInterval = config.appStateInterval();
25+
this.executionPollInterval = config.executionPollInterval();
26+
}
27+
28+
public long getAppStateInterval() {
29+
return appStateInterval;
30+
}
31+
32+
public long getExecutionPollInterval() {
33+
return executionPollInterval;
34+
}
35+
36+
@ObjectClassDefinition(name = "AEM Content Manager - SPA Settings")
37+
public @interface Config {
38+
39+
@AttributeDefinition(
40+
name = "Application State Interval",
41+
description = "Interval in milliseconds to check application state."
42+
)
43+
long appStateInterval() default 3000;
44+
45+
@AttributeDefinition(
46+
name = "Execution Poll Interval",
47+
description = "Interval in milliseconds to poll execution status."
48+
)
49+
long executionPollInterval() default 1000;
50+
}
51+
}

core/src/main/java/com/wttech/aem/acm/core/servlet/StateServlet.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import com.wttech.aem.acm.core.code.ExecutionQueue;
88
import com.wttech.aem.acm.core.code.ExecutionSummary;
9+
import com.wttech.aem.acm.core.gui.SpaSettings;
910
import com.wttech.aem.acm.core.instance.HealthChecker;
1011
import com.wttech.aem.acm.core.instance.HealthStatus;
1112
import com.wttech.aem.acm.core.osgi.InstanceInfo;
@@ -45,13 +46,16 @@ public class StateServlet extends SlingAllMethodsServlet {
4546
@Reference
4647
private HealthChecker healthChecker;
4748

49+
@Reference
50+
private SpaSettings spaSettings;
51+
4852
@Override
4953
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
5054
try {
5155
HealthStatus healthStatus = healthChecker.checkStatus();
5256
List<ExecutionSummary> queuedExecutions =
5357
executionQueue.findAllSummaries().collect(Collectors.toList());
54-
State state = new State(healthStatus, instanceInfo.getInstanceSettings(), queuedExecutions);
58+
State state = new State(healthStatus, instanceInfo.getInstanceSettings(), queuedExecutions, spaSettings);
5559

5660
respondJson(response, ok("State read successfully", state));
5761
} catch (Exception e) {

core/src/main/java/com/wttech/aem/acm/core/state/State.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.wttech.aem.acm.core.state;
22

33
import com.wttech.aem.acm.core.code.ExecutionSummary;
4+
import com.wttech.aem.acm.core.gui.SpaSettings;
45
import com.wttech.aem.acm.core.instance.HealthStatus;
56
import com.wttech.aem.acm.core.instance.InstanceSettings;
67
import java.io.Serializable;
@@ -14,11 +15,14 @@ public class State implements Serializable {
1415

1516
private final List<ExecutionSummary> queuedExecutions;
1617

18+
private final SpaSettings spaSettings;
19+
1720
public State(
18-
HealthStatus healthStatus, InstanceSettings instanceSettings, List<ExecutionSummary> queuedExecutions) {
21+
HealthStatus healthStatus, InstanceSettings instanceSettings, List<ExecutionSummary> queuedExecutions, SpaSettings spaSettings) {
1922
this.healthStatus = healthStatus;
2023
this.instanceSettings = instanceSettings;
2124
this.queuedExecutions = queuedExecutions;
25+
this.spaSettings = spaSettings;
2226
}
2327

2428
public HealthStatus getHealthStatus() {
@@ -32,4 +36,8 @@ public InstanceSettings getInstanceSettings() {
3236
public List<ExecutionSummary> getQueuedExecutions() {
3337
return queuedExecutions;
3438
}
39+
40+
public SpaSettings getSpaSettings() {
41+
return spaSettings;
42+
}
3543
}

0 commit comments

Comments
 (0)