Skip to content

Commit 4bd4373

Browse files
committed
WIP: intermediate changes
1 parent 39e3e1f commit 4bd4373

File tree

1 file changed

+10
-74
lines changed

1 file changed

+10
-74
lines changed
Lines changed: 10 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package org.lowcoder.api.framework.plugin;
22

3-
import java.util.ArrayList;
4-
import java.util.Comparator;
5-
import java.util.LinkedHashMap;
6-
import java.util.List;
73
import java.util.Map;
84

9-
import org.apache.commons.collections4.CollectionUtils;
10-
import org.lowcoder.plugin.api.LowcoderPlugin;
11-
import org.lowcoder.plugin.api.LowcoderServices;
5+
import org.lowcoder.plugin.LowcoderPlugin;
6+
import org.lowcoder.sdk.config.CommonConfig;
7+
import org.springframework.boot.system.ApplicationHome;
8+
import org.springframework.context.ConfigurableApplicationContext;
129
import org.springframework.stereotype.Component;
1310

1411
import jakarta.annotation.PostConstruct;
15-
import jakarta.annotation.PreDestroy;
1612
import lombok.RequiredArgsConstructor;
1713
import lombok.extern.slf4j.Slf4j;
1814

@@ -21,77 +17,17 @@
2117
@Slf4j
2218
public class LowcoderPluginManager
2319
{
24-
private final LowcoderServices lowcoderServices;
25-
private final PluginLoader pluginLoader;
20+
private final ConfigurableApplicationContext applicationContext;
21+
private final CommonConfig common;
22+
private final ApplicationHome applicationHome;
23+
24+
private Map<String, LowcoderPlugin> plugins;
25+
2626

27-
private Map<String, LowcoderPlugin> plugins = new LinkedHashMap<>();
28-
2927
@PostConstruct
3028
private void loadPlugins()
3129
{
32-
registerPlugins();
33-
List<LowcoderPlugin> sorted = new ArrayList<>(plugins.values());
34-
sorted.sort(Comparator.comparing(LowcoderPlugin::loadOrder));
3530

36-
for (LowcoderPlugin plugin : sorted)
37-
{
38-
PluginExecutor executor = new PluginExecutor(plugin, lowcoderServices);
39-
executor.start();
40-
}
4131
}
42-
43-
@PreDestroy
44-
public void unloadPlugins()
45-
{
46-
for (LowcoderPlugin plugin : plugins.values())
47-
{
48-
try
49-
{
50-
plugin.unload();
51-
}
52-
catch(Throwable cause)
53-
{
54-
log.warn("Error unloading plugin: {}!", plugin.pluginId(), cause);
55-
}
56-
}
57-
}
58-
59-
public List<PluginInfo> getLoadedPluginsInfo()
60-
{
61-
List<PluginInfo> infos = new ArrayList<>();
62-
for (LowcoderPlugin plugin : plugins.values())
63-
{
64-
infos.add(new PluginInfo(plugin.pluginId(), plugin.description(), plugin.pluginInfo()));
65-
}
66-
return infos;
67-
}
68-
69-
private void registerPlugins()
70-
{
71-
List<LowcoderPlugin> loaded = pluginLoader.loadPlugins();
72-
if (CollectionUtils.isNotEmpty(loaded))
73-
{
74-
for (LowcoderPlugin plugin : loaded)
75-
{
76-
if (!plugins.containsKey(plugin.pluginId()))
77-
{
78-
log.info("Registered plugin: {} ({})", plugin.pluginId(), plugin.getClass().getName());
79-
plugins.put(plugin.pluginId(), plugin);
80-
}
81-
else
82-
{
83-
log.warn("Plugin {} already registered (from: {}), skipping {}.", plugin.pluginId(),
84-
plugins.get(plugin.pluginId()).getClass().getName(),
85-
plugin.getClass().getName());
86-
}
87-
}
88-
}
89-
}
90-
91-
private record PluginInfo(
92-
String id,
93-
String description,
94-
Object info
95-
) {}
9632

9733
}

0 commit comments

Comments
 (0)