diff --git a/src/main/java/core/packetproxy/model/Extensions.java b/src/main/java/core/packetproxy/model/Extensions.java index ef221d45..4a077699 100644 --- a/src/main/java/core/packetproxy/model/Extensions.java +++ b/src/main/java/core/packetproxy/model/Extensions.java @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.ServiceLoader; import java.util.jar.JarEntry; import java.util.jar.JarFile; import javax.swing.JOptionPane; @@ -85,6 +86,12 @@ private Extensions() throws Exception { Extension extension = (Extension) constructor.newInstance(); create(extension); } + + // load extensions via SPI + ServiceLoader loader = ServiceLoader.load(Extension.class); + for (Extension extension : loader) { + create(extension); + } } public void addPropertyChangeListener(PropertyChangeListener listener) { @@ -111,6 +118,19 @@ public Extension loadExtension(String name, String path) { } return extension; } + + // SPI経由でロードされた拡張機能を名前で検索 + ServiceLoader loader = ServiceLoader.load(Extension.class); + for (Extension extension : loader) { + if (extension.getName().equals(name)) { + return extension; + } + } + + if (path == null || path.isEmpty()) { + return null; + } + try { File file = new File(path); diff --git a/src/main/java/core/packetproxy/model/Packets.java b/src/main/java/core/packetproxy/model/Packets.java index 3da16152..7ca05ae1 100644 --- a/src/main/java/core/packetproxy/model/Packets.java +++ b/src/main/java/core/packetproxy/model/Packets.java @@ -188,6 +188,10 @@ public List queryFullText_i(String search) throws Exception { .query(); } + public List queryByGroup(long group) throws Exception { + return dao.queryBuilder().orderBy("id", true).where().eq("group", group).query(); + } + public void firePropertyChange() { changes.firePropertyChange(PACKETS.toString(), null, null); }