sige 2 years ago
parent
commit
3360665a39
  1. 1
      src/publish.ps1
  2. 1
      src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java
  3. 1
      src/src/main/java/com/my/graphiteDigesterBg/diframe/connection/DiConWebsocketClient.java
  4. 38
      src/src/main/java/com/my/graphiteDigesterBg/diframe/util/DiClassHelper.java
  5. 3
      src/src/main/resources/application.yml

1
src/publish.ps1

@ -10,6 +10,7 @@ git push
# build
mvn clean package
Rename-Item -Path target/graphite_digester_bg-$version.jar -NewName "app-$version.jar"
# upload
scp target/app-$version.jar root@192.168.8.10:/app-java/

1
src/src/main/java/com/my/graphiteDigesterBg/MyApplicationRunner.java

@ -6,6 +6,7 @@ import com.my.graphiteDigesterBg.diframe.DiDeviceIOManager;
import com.my.graphiteDigesterBg.diframe.actuator.DiActMotor;
import com.my.graphiteDigesterBg.diframe.actuator.DiActPeristalticPump;
import com.my.graphiteDigesterBg.diframe.actuator.DiActServo;
import com.my.graphiteDigesterBg.diframe.util.DiClassHelper;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;

1
src/src/main/java/com/my/graphiteDigesterBg/diframe/connection/DiConWebsocketClient.java

@ -44,6 +44,5 @@ public class DiConWebsocketClient extends WebSocketClient {
@Override
public void onError(Exception e) {
LOG.error("error", e);
throw new RuntimeException(e);
}
}

38
src/src/main/java/com/my/graphiteDigesterBg/diframe/util/DiClassHelper.java

@ -1,10 +1,14 @@
package com.my.graphiteDigesterBg.diframe.util;
import java.io.File;
import java.io.IOException;
import java.net.JarURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
public class DiClassHelper {
// get all classes in package
public static List<Class<?>> getAllClassesInPackage(String packageName) {
@ -15,6 +19,8 @@ public class DiClassHelper {
for (URL resource : resources) {
if ( "file".equals(resource.getProtocol()) ) {
DiClassHelper.getClassListByGivenFilePath(packageName,resource.getFile(), classes);
} else if ( "jar".equals(resource.getProtocol()) ) {
DiClassHelper.getClassListByGivenJarPath(packageName,resource, classes);
} else {
throw new RuntimeException("Unsupported protocol: " + resource.getProtocol());
}
@ -25,6 +31,38 @@ public class DiClassHelper {
return classes;
}
// get class list by given jar path
private static void getClassListByGivenJarPath( String packageName, URL resource, List<Class<?>> classes ) {
JarURLConnection urlConnection = null;
try {
urlConnection = (JarURLConnection) resource.openConnection();
} catch (IOException e) {
throw new RuntimeException(e);
}
Enumeration<JarEntry> entries = null;
try {
entries = urlConnection.getJarFile().entries();
} catch (IOException e) {
throw new RuntimeException(e);
}
while (entries.hasMoreElements()) {
// 获取jar里的一个实体 可以是目录 和一些jar包里的其他文件 如META-INF等文件
JarEntry entry = entries.nextElement();
String entryName = entry.getName();
if ( entryName.endsWith(".class") ) {
try {
String className = entryName.substring(0, entryName.length() - 6);
className = className.replace("/", ".");
classes.add(Class.forName(className));
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}
}
// get class list by given file path
private static void getClassListByGivenFilePath( String packageName, String filePath, List<Class<?>> classes ) {
File file = new File(filePath);

3
src/src/main/resources/application.yml

@ -5,6 +5,9 @@ spring:
password: 1
driver-class-name: org.sqlite.JDBC
server:
port: 80
#mybatis:
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
Loading…
Cancel
Save