Skip to content

Commit

Permalink
Allowed a custom resolver script to be attached to any physical model…
Browse files Browse the repository at this point in the history
… entity

Created an HTTP client for GET and POST requests
Provided an example of an Arduino UNO WiFi using the HTTP client
Updated Bouncy Castle to version 1.77
Updated RabbitMQ to version 5.20.0
Updated ActiveMQ to version 5.18.3
Updated Kafka to version 3.6.1
Updated Jackson to version 2.16.0
Updated WebSocket to version 1.5.5
  • Loading branch information
point85 committed Dec 26, 2023
1 parent ab28702 commit db1c9b3
Show file tree
Hide file tree
Showing 38 changed files with 448 additions and 666 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ The Java Persistence 2.2 API (JPA) as implemented by the Hibernate ORM framework
Hibernate and JPA abstract-away database specific aspects of inserting, updating, reading and deleting records in the tables. The API is designed to work with any relational database supported by Hibernate.

## What's New
Version 3.9.2 is a maintenance release with no new functionality. Please see the Release Notes.txt file for release history.
Version 3.9.3 allows a resolver script to be attached to any physical model entity, not just to equipment. This release also implements an HTTP client for GET and POST requests. An example for an Arduino UNO WiFi is included in the User Guide. Please see the Release Notes.txt file for release history.

## Getting Started
The desktop applications are packaged in the oee-<version>.zip file in the latest Git release link at https://github.com/point85/OEE-Designer/releases. Download the oee-<version>.zip file and expand the archive into a folder of your choice. Next, download the Point85 OEE Getting Started Guide and follow instructions in that document. Additional information may be found in the Point85 OEE User Guide.
Expand Down
11 changes: 11 additions & 0 deletions Release Notes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -288,5 +288,16 @@ Note that version 3.2.0 has the following schema changes:
- Updated HSQLDB driver to version 2.7.2
- Updated JavaFX to version 17.0.9
- Several NPE fixes

(41) 3.10.0, December 27, 2023:
- Allowed a custom resolver script to be attached to any physical model entity
- Created an HTTP client for GET and POST requests
- Provided an example of an Arduino UNO WiFi using the HTTP client
- Updated Bouncy Castle to version 1.77
- Updated RabbitMQ to version 5.20.0
- Updated ActiveMQ to version 5.18.3
- Updated Kafka to version 3.6.1
- Updated Jackson to version 2.16.0
- Updated WebSocket to version 1.5.5

Please send comments and suggestions to [email protected].
6 changes: 3 additions & 3 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<project name="oee-apps" default="build-distro" basedir="." >

<!-- distribution archive -->
<property name="app_version" value="3.9.2"/>
<property name="domain.jar" value="oee-domain-3.9.2.jar"/>
<property name="collector.jar" value="oee-collector-3.9.2.jar"/>
<property name="app_version" value="3.10.0"/>
<property name="domain.jar" value="oee-domain-3.10.0.jar"/>
<property name="collector.jar" value="oee-collector-3.10.0.jar"/>

<!-- folders -->
<property name="fxbuild.dir" value="fxbuild"/>
Expand Down
2 changes: 1 addition & 1 deletion config/logging/log4j2.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="warn" name="Point85_Configuration" packages="">
<Configuration status="warn" name="Point85_Configuration">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %c{1} - %msg%n"/>
Expand Down
Binary file modified docs/Point85 OEE Getting Started Guide.pdf
Binary file not shown.
Binary file modified docs/Point85 OEE Getting Started Guide.tmdx
Binary file not shown.
Binary file modified docs/Point85 OEE User Guide.pdf
Binary file not shown.
Binary file modified docs/Point85 OEE User Guide.tmdx
Binary file not shown.
22 changes: 3 additions & 19 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

<groupId>org.point85</groupId>
<artifactId>oee-apps</artifactId>
<version>3.9.2</version>
<version>3.10.0</version>
<packaging>jar</packaging>

<name>Point85 OEE JavaFX Applications</name>
<url>https://github.com/point85</url>

<properties>
<domain.version>3.9.2</domain.version>
<domain.version>3.10.0</domain.version>
<maven.compiler.release>11</maven.compiler.release>
<javafx.version>17.0.9</javafx.version>
<javafx.maven.plugin.version>0.0.8</javafx.maven.plugin.version>
Expand All @@ -30,6 +30,7 @@
</dependency>

<!-- Jetty HTTP server -->
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
Expand All @@ -56,16 +57,6 @@
<version>2.9.1</version>
</dependency>


<!-- OPC UA -->
<!-- https://mvnrepository.com/artifact/org.eclipse.milo/sdk-client
<dependency>
<groupId>org.eclipse.milo</groupId>
<artifactId>sdk-client</artifactId>
<version>0.6.11</version>
</dependency>
-->

<!-- LOGGING -->
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
Expand Down Expand Up @@ -175,13 +166,6 @@
<version>15.4</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket -->
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.4</version>
</dependency>

</dependencies>

<build>
Expand Down
2 changes: 1 addition & 1 deletion run-collector-app.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rem Launch the Collector application (args: JDBC connection string, user name, password and optional collector name)
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication COLLECTOR jdbc:hsqldb:hsql://localhost/OEE SA
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication COLLECTOR jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-collector-app.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Launch the Collector application (args: JDBC connection string, user name, password and optional collector name)
java -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication COLLECTOR jdbc:hsqldb:hsql://localhost/OEE SA
java -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication COLLECTOR jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-designer-app-debug.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rem Launch the Designer application (args: JDBC connection string, user name, password and optional collector name)
java.exe -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p %JAVAFX_HOME%\lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication DESIGNER jdbc:hsqldb:hsql://localhost/OEE SA
java.exe -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p %JAVAFX_HOME%\lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication DESIGNER jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-designer-app.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
rem Launch the Designer application (args: JDBC connection string, user name, password and optional collector name)
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication DESIGNER jdbc:hsqldb:hsql://localhost/OEE SA
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication DESIGNER jdbc:hsqldb:hsql://localhost/OEE SA

2 changes: 1 addition & 1 deletion run-designer-app.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Launch the Designer application (args: JDBC connection string, user name, password and optional collector name)
java -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication DESIGNER jdbc:hsqldb:hsql://localhost/OEE SA
java -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication DESIGNER jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-monitor-app.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rem Launch the Monitor application (args: JDBC connection string, user name, password and optional collector name)
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication MONITOR jdbc:hsqldb:hsql://localhost/OEE SA
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication MONITOR jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-monitor-app.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Launch the Monitor application (args: JDBC connection string, user name, password and optional collector name)
java -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication MONITOR jdbc:hsqldb:hsql://localhost/OEE SA
java -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication MONITOR jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-operator-app.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rem Launch the Operator application (args: JDBC connection string, user name, password and optional collector name)
start "" "%JAVA_HOME%\bin\javaw.exe" -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml -jar oee-apps-3.9.2.jar OPERATOR jdbc:hsqldb:hsql://localhost/OEE SA
start "" "%JAVA_HOME%\bin\javaw.exe" -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml -jar oee-apps-3.10.0.jar OPERATOR jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-operator-app.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Launch the Operator application (args: JDBC connection string, user name, password and optional collector name)
java -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml -jar oee-apps-3.9.2.jar OPERATOR jdbc:hsqldb:hsql://localhost/OEE SA
java -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml -jar oee-apps-3.10.0.jar OPERATOR jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-tester-app.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rem Launch the Tester application (args: JDBC connection string, user name, password and optional collector name)
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication TESTER jdbc:hsqldb:hsql://localhost/OEE SA
start "" "%JAVA_HOME%\bin\javaw.exe" -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p "%JAVAFX_HOME%\lib" --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication TESTER jdbc:hsqldb:hsql://localhost/OEE SA
2 changes: 1 addition & 1 deletion run-tester-app.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Launch the Tester application (args: JDBC connection string, user name, password and optional collector name)
java -cp ./oee-apps-3.9.2.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication TESTER jdbc:hsqldb:hsql://localhost/OEE SA
java -cp ./oee-apps-3.10.0.jar;lib/*;lib/ext/* -p $JAVAFX_HOME/lib --add-modules javafx.controls,javafx.fxml,javafx.web -Dlog4j2.configurationFile=config/logging/log4j2.xml org.point85.app.OeeApplication TESTER jdbc:hsqldb:hsql://localhost/OEE SA
4 changes: 2 additions & 2 deletions src/main/java/org/point85/app/cron/CronTrendController.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ public void setEventResolver(EventResolver eventResolver) {
eventResolver.setWatchMode(true);
trendChartController.setEventResolver(eventResolver);

lbSourceId.setText(DesignerLocalizer.instance().getLangString("event.source",
eventResolver.getEquipment().getName(), eventResolver.getSourceId()));
lbSourceId.setText(DesignerLocalizer.instance().getLangString("event.source",
eventResolver.getPlantEntity().getName(), eventResolver.getSourceId()));

lbJob.setText(DesignerLocalizer.instance().getLangString("cron.job", eventResolver.getDataSource().getName()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1421,6 +1421,8 @@ private String buildMeanDisplayString(TimeLoss loss) {
@FXML
public void onRefresh() {
try {
lblNotification.setText(null);

// clear previous calculation
if (equipmentLoss == null) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public void setEventResolver(EventResolver eventResolver) {
trendChartController.setEventResolver(eventResolver);

lbSourceId.setText(DesignerLocalizer.instance().getLangString("event.source",
eventResolver.getEquipment().getName(), eventResolver.getSourceId()));
eventResolver.getPlantEntity().getName(), eventResolver.getSourceId()));
lbUser.setText(DesignerLocalizer.instance().getLangString("user", eventResolver.getDataSource().getUserName()));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -311,15 +311,15 @@ private void onSelectScriptResolver(EventResolver eventResolver) {
btAddResolver.setText(DesignerLocalizer.instance().getLangString("update"));
}

void showResolvers(Equipment equipment) {
if (equipment == null) {
void showResolvers(PlantEntity entity) {
if (entity == null) {
return;
}

clearEditor();

eventResolvers.clear();
for (EventResolver resolver : equipment.getScriptResolvers()) {
for (EventResolver resolver : entity.getScriptResolvers()) {
eventResolvers.add(resolver);
}
tvResolvers.refresh();
Expand All @@ -336,7 +336,7 @@ private void onRemoveResolver() {

// remove from entity
PlantEntity selectedEntity = getApp().getPhysicalModelController().getSelectedEntity();
((Equipment) selectedEntity).removeScriptResolver(selectedEventResolver);
selectedEntity.removeScriptResolver(selectedEventResolver);

// remove from list
eventResolvers.remove(selectedEventResolver);
Expand Down Expand Up @@ -467,8 +467,8 @@ private void onSelectDataSource() {
@FXML
private void onBrowseSource() {
try {
Equipment equipment = (Equipment) getApp().getPhysicalModelController().getSelectedEntity();
if (equipment == null) {
PlantEntity entity = getApp().getPhysicalModelController().getSelectedEntity();
if (entity == null) {
throw new Exception(DesignerLocalizer.instance().getErrorString("no.equipment"));
}

Expand Down Expand Up @@ -696,12 +696,6 @@ private void onEditCollector() {
@FXML
private void onEditScript() {
try {
PlantEntity entity = getApp().getPhysicalModelController().getSelectedEntity();

if (!(entity instanceof Equipment)) {
throw new Exception(DesignerLocalizer.instance().getErrorString("no.equipment"));
}

// resolver type
OeeEventType resolverType = cbResolverTypes.getSelectionModel().getSelectedItem();

Expand Down Expand Up @@ -794,18 +788,16 @@ private void onNewResolver() {
@FXML
private void onAddOrUpdateResolver() {
try {
PlantEntity plantEntity = getApp().getPhysicalModelController().getSelectedEntity();

if (!(plantEntity instanceof Equipment)) {
throw new Exception(DesignerLocalizer.instance().getErrorString("no.equipment"));
}

// equipment
Equipment equipment = (Equipment) plantEntity;
PlantEntity entity = getApp().getPhysicalModelController().getSelectedEntity();

// ensure that we have a resolver
getSelectedResolver();

// only custom resolver supported for non-equipment
if (!(entity instanceof Equipment) && !selectedEventResolver.getType().equals(OeeEventType.CUSTOM)) {
throw new Exception(DesignerLocalizer.instance().getErrorString("must.be.custom"));
}

// collector
selectedEventResolver.setCollector(cbCollectors.getSelectionModel().getSelectedItem());

Expand All @@ -826,7 +818,7 @@ private void onAddOrUpdateResolver() {
}

// add this resolver
selectedEventResolver.setEquipment(equipment);
selectedEventResolver.setPlantEntity(entity);

if (!eventResolvers.contains(selectedEventResolver)) {
eventResolvers.add(selectedEventResolver);
Expand All @@ -839,7 +831,7 @@ private void onAddOrUpdateResolver() {

Set<EventResolver> resolvers = new HashSet<>();
resolvers.addAll(eventResolvers);
equipment.setScriptResolvers(resolvers);
entity.setScriptResolvers(resolvers);

// mark dirty
getApp().getPhysicalModelController().markSelectedPlantEntity();
Expand Down Expand Up @@ -893,7 +885,7 @@ private void onRun() {
getApp().showEmailTrendDialog(selectedEventResolver);
} else if (type.equals(DataSourceType.PROFICY)) {
getApp().showProficyTrendDialog(selectedEventResolver);
}else if (type.equals(DataSourceType.WEB_SOCKET)) {
} else if (type.equals(DataSourceType.WEB_SOCKET)) {
getApp().showWebSocketTrendDialog(selectedEventResolver);
}
} catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -380,20 +380,19 @@ private void onSelectEntity(TreeItem<EntityNode> oldItem, TreeItem<EntityNode> n
newItem.setExpanded(true);

tbWorkSchedules.setDisable(false);
tbAvailability.setDisable(false);

if (selectedEntity instanceof Equipment) {
tbAvailability.setDisable(false);
tbEquipMaterials.setDisable(false);
btDashboard.setDisable(false);

tpEntity.getSelectionModel().select(tbEquipMaterials);
onSelectEquipmentMaterial();
} else {
tbAvailability.setDisable(true);
tbEquipMaterials.setDisable(true);
btDashboard.setDisable(true);

tpEntity.getSelectionModel().select(tbWorkSchedules);
tpEntity.getSelectionModel().select(tbAvailability);
onSelectWorkSchedules();
}
}
Expand Down Expand Up @@ -1031,15 +1030,17 @@ private void displayAttributes(PlantEntity entity) {
} else {
this.lbCurrentSchedule.setText(null);
}

// resolvers
if (resolverController != null) {
resolverController.showResolvers(entity);
}

// material being produced
if (entity instanceof Equipment) {
if (equipmentMaterialController != null) {
equipmentMaterialController.showMaterial((Equipment) entity);
}

if (resolverController != null) {
resolverController.showResolvers((Equipment) entity);
}
}
}

Expand Down Expand Up @@ -1144,13 +1145,7 @@ private EquipmentResolverController getResolverController() throws Exception {
}

private void onSelectEquipmentResolver() throws Exception {

// show entity resolvers
if (getSelectedEntity() instanceof Equipment) {
getResolverController().showResolvers((Equipment) getSelectedEntity());
} else {
getResolverController().clearEditor();
}
getResolverController().showResolvers(getSelectedEntity());
}

@FXML
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public void setEventResolver(EventResolver eventResolver) {
trendChartController.setEventResolver(eventResolver);

lbSourceId.setText(DesignerLocalizer.instance().getLangString("event.source",
eventResolver.getEquipment().getName(), eventResolver.getSourceId()));
eventResolver.getPlantEntity().getName(), eventResolver.getSourceId()));

lbHost.setText(DesignerLocalizer.instance().getLangString("share", eventResolver.getDataSource().getHost()));
}
Expand Down
Loading

0 comments on commit db1c9b3

Please sign in to comment.