Skip to content

Commit 553a03d

Browse files
Merge pull request #18 from TIHBS/load-connection-profile-subtypes-at-start
Load ConnectionProfile subtype at start
2 parents 81a7986 + 1bae005 commit 553a03d

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

src/main/java/blockchains/iaas/uni/stuttgart/de/config/Application.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
import blockchains.iaas.uni.stuttgart.de.management.BlockchainPluginManager;
66
import org.glassfish.jersey.jackson.JacksonFeature;
77
import org.glassfish.jersey.server.ResourceConfig;
8+
import org.pf4j.PluginState;
9+
import org.pf4j.PluginWrapper;
810

911
import javax.ws.rs.ApplicationPath;
12+
import java.util.List;
1013

1114
/********************************************************************************
1215
* Copyright (c) 2018 Institute for the Architecture of Application System -
@@ -23,8 +26,10 @@
2326
public class Application extends ResourceConfig {
2427
public Application() {
2528
// Required to load the plugins at startup
26-
BlockchainPluginManager.getInstance();
27-
29+
BlockchainPluginManager blockchainPluginManager = BlockchainPluginManager.getInstance();
30+
if (Boolean.getBoolean("enablePluginsAtStart")) {
31+
blockchainPluginManager.startPlugins();
32+
}
2833
packages("blockchains.iaas.uni.stuttgart.de");
2934
register(ObjectMapperProvider.class);
3035
register(JacksonFeature.class);

src/main/java/blockchains/iaas/uni/stuttgart/de/config/ObjectMapperProvider.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,17 @@
1313
*******************************************************************************/
1414
package blockchains.iaas.uni.stuttgart.de.config;
1515

16+
import javax.ws.rs.core.MediaType;
1617
import javax.ws.rs.ext.ContextResolver;
1718
import javax.ws.rs.ext.Provider;
1819

20+
import blockchains.iaas.uni.stuttgart.de.management.BlockchainPluginManager;
1921
import com.fasterxml.jackson.databind.ObjectMapper;
2022
import com.fasterxml.jackson.databind.SerializationFeature;
23+
import org.pf4j.PluginState;
24+
import org.pf4j.PluginWrapper;
2125

26+
import java.util.List;
2227

2328

2429
@Provider
@@ -28,6 +33,13 @@ public class ObjectMapperProvider implements ContextResolver<ObjectMapper> {
2833

2934
public ObjectMapperProvider() {
3035
defaultObjectMapper = createDefaultMapper();
36+
if (Boolean.getBoolean("enablePluginsAtStart")) {
37+
BlockchainPluginManager blockchainPluginManager = BlockchainPluginManager.getInstance();
38+
List<PluginWrapper> plugins = blockchainPluginManager.getPlugins(PluginState.STARTED);
39+
for (PluginWrapper pluginWrapper : plugins) {
40+
blockchainPluginManager.registerConnectionProfileSubtypeClass(defaultObjectMapper, pluginWrapper.getPluginId());
41+
}
42+
}
3143
}
3244

3345
@Override

src/main/java/blockchains/iaas/uni/stuttgart/de/management/BlockchainPluginManager.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.pf4j.PluginState;
2222
import org.pf4j.PluginWrapper;
2323
import org.pf4j.ManifestPluginDescriptorFinder;
24-
import org.pf4j.DependencyResolver.DependenciesNotFoundException;
2524
import org.pf4j.JarPluginLoader;
2625
import org.pf4j.PluginDescriptorFinder;
2726
import org.pf4j.PluginLoader;
@@ -31,7 +30,7 @@
3130
import java.nio.file.Path;
3231
import java.util.List;
3332

34-
public class BlockchainPluginManager {
33+
public class BlockchainPluginManager{
3534

3635
private static final Logger log = LoggerFactory.getLogger(BlockchainPluginManager.class);
3736

@@ -56,9 +55,6 @@ protected PluginDescriptorFinder createPluginDescriptorFinder() {
5655

5756
pluginManager.loadPlugins();
5857

59-
if (Boolean.getBoolean("enablePluginsAtStart")) {
60-
pluginManager.startPlugins();
61-
}
6258
}
6359

6460
public static BlockchainPluginManager getInstance() {
@@ -90,8 +86,14 @@ public void unloadPlugin(String pluginId) {
9086

9187
public void startPlugin(String pluginId) {
9288
pluginManager.startPlugin(pluginId);
89+
}
9390

91+
public void startPlugins() {
92+
pluginManager.startPlugins();
93+
}
9494

95+
public List<PluginWrapper> getPlugins(PluginState pluginState) {
96+
return pluginManager.getPlugins(pluginState);
9597
}
9698

9799
public void disablePlugin(String pluginId) {

0 commit comments

Comments
 (0)