Skip to content

Commit fb061ef

Browse files
jenkins service-accountCarl Dea
authored andcommitted
Ready For Review: feature/IKM-2089_plugin-support-komet
1 parent 560dbe6 commit fb061ef

File tree

20 files changed

+90
-29
lines changed

20 files changed

+90
-29
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,3 +227,4 @@ Temporary Items
227227
# General
228228
###################
229229
**.zip
230+
htmlReport

application/src/main/java/dev/ikm/komet/app/App.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
import dev.ikm.komet.preferences.Preferences;
8282
import dev.ikm.komet.progress.CompletionNodeFactory;
8383
import dev.ikm.komet.progress.ProgressNodeFactory;
84+
import dev.ikm.komet.reasoner.ReasonerResultsNodeFactory;
8485
import dev.ikm.komet.search.SearchNodeFactory;
8586
import dev.ikm.komet.table.TableNodeFactory;
8687
import dev.ikm.tinkar.common.alert.AlertObject;
@@ -131,6 +132,7 @@
131132
import java.time.ZoneId;
132133
import java.util.ArrayList;
133134
import java.util.List;
135+
import java.util.UUID;
134136
import java.util.function.Consumer;
135137
import java.util.prefs.BackingStoreException;
136138

@@ -581,7 +583,7 @@ private void launchJournalViewWindow(PrefX journalWindowSettings) {
581583

582584
// Launch windows window pane inside journal view
583585
journalStageWindow.setOnShown(windowEvent -> {
584-
//TODO: Refactor factory constructor calls below to use ServiceLoader (make constructors private)
586+
//TODO: Refactor factory constructor calls below to use PluggableService (make constructors private)
585587
KometNodeFactory navigatorNodeFactory = new GraphNavigatorNodeFactory();
586588
KometNodeFactory searchNodeFactory = new SearchNodeFactory();
587589

Loading

classification/src/main/java/dev/ikm/komet/reasoner/ReasonerResultsNode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import dev.ikm.komet.reasoner.ui.RunElkOwlReasonerIncrementalTask;
2727
import dev.ikm.komet.reasoner.ui.RunElkOwlReasonerTask;
2828
import dev.ikm.tinkar.common.alert.AlertStreams;
29+
import dev.ikm.tinkar.common.service.PluggableService;
2930
import dev.ikm.tinkar.common.service.TinkExecutor;
3031
import dev.ikm.tinkar.reasoner.service.ReasonerService;
3132
import dev.ikm.tinkar.terms.EntityFacade;
@@ -79,7 +80,7 @@ public ReasonerResultsNode(ViewProperties viewProperties, KometPreferences nodeP
7980
ArrayList<MenuItem> collectionMenuItems = new ArrayList<>();
8081
collectionMenuItems.add(new SeparatorMenuItem());
8182

82-
List<ReasonerService> rss = ServiceLoader.load(ReasonerService.class).stream().map(Provider::get)
83+
List<ReasonerService> rss = PluggableService.load(ReasonerService.class).stream().map(Provider::get)
8384
.sorted(Comparator.comparing(ReasonerService::getName)).toList();
8485
for (ReasonerService rs : rss) {
8586
LOG.info("Reasoner service add: " + rs);

framework/src/main/java/dev/ikm/komet/framework/KometNodeFactory.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import dev.ikm.tinkar.common.alert.AlertObject;
2525
import dev.ikm.tinkar.common.alert.AlertReportingService;
2626
import dev.ikm.tinkar.common.id.PublicIdStringKey;
27+
import dev.ikm.tinkar.common.service.PluggableService;
2728
import dev.ikm.tinkar.common.util.broadcast.Broadcaster;
2829
import javafx.scene.control.Label;
2930
import org.eclipse.collections.api.list.ImmutableList;
@@ -69,7 +70,7 @@ default KometNode create(ObservableViewNoOverride windowView,
6970
}catch(UnsupportedOperationException e){
7071
AlertObject alertObject = new AlertObject(UNSUPPORTED_OPERATION, e.getMessage(),
7172
INFORMATION, TAXONOMY);
72-
ServiceLoader<AlertReportingService> loader = ServiceLoader.load(AlertReportingService.class);
73+
ServiceLoader<AlertReportingService> loader = PluggableService.load(AlertReportingService.class);
7374
StreamSupport.stream(loader.spliterator(), false).forEach(alertReportingService -> alertReportingService.onNext(alertObject));
7475
}
7576
return null;
@@ -117,10 +118,10 @@ default Label getMenuIconGraphic() {
117118
String getStyleId();
118119

119120
/**
120-
* Getting available service providers using <code>java.tools.ServiceLoader</code> utility class.
121+
* Getting available service providers using <code>dev.ikm.tinkar.common.service.PluggableService</code> utility class.
121122
* @return Iterable list of KometNodeFactory classes
122123
*/
123124
static ServiceLoader<KometNodeFactory> getKometNodeFactories() {
124-
return ServiceLoader.load(KometNodeFactory.class);
125+
return PluggableService.load(KometNodeFactory.class);
125126
}
126127
}

framework/src/main/java/dev/ikm/komet/framework/concurrent/TaskListsProviderFinder.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,22 @@
1919
import java.util.Optional;
2020
import java.util.ServiceLoader;
2121

22+
import dev.ikm.tinkar.common.service.PluggableService;
23+
2224
public enum TaskListsProviderFinder {
2325
INSTANCE;
2426

2527
TaskListsService service;
2628

2729
TaskListsProviderFinder() {
2830
Class serviceClass = TaskListsService.class;
29-
ServiceLoader<TaskListsService> serviceLoader = ServiceLoader.load(serviceClass);
31+
ServiceLoader<TaskListsService> serviceLoader = PluggableService.load(serviceClass);
3032
Optional<TaskListsService> optionalService = serviceLoader.findFirst();
3133
if (optionalService.isPresent()) {
3234
this.service = optionalService.get();
3335
} else {
3436
throw new NoSuchElementException("No " + serviceClass.getName() +
35-
" found by ServiceLoader...");
37+
" found by PluggableService...");
3638
}
3739
}
3840

framework/src/main/java/dev/ikm/komet/framework/events/EvtBusFactory.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.util.Optional;
2121
import java.util.ServiceLoader;
2222

23+
import dev.ikm.tinkar.common.service.PluggableService;
24+
2325
/**
2426
* Factory class to create and return an Event Bus implementation
2527
*/
@@ -53,7 +55,7 @@ public static EvtBus getInstance(Class clazz) {
5355
*/
5456
public static EvtBus getInstance(String name) {
5557
if (null == evtBusMap.get(name)) {
56-
Optional<EvtBus> optBus = ServiceLoader.load(EvtBus.class)
58+
Optional<EvtBus> optBus = PluggableService.load(EvtBus.class)
5759
.stream()
5860
.filter(evtBusProvider ->
5961
evtBusProvider.type().isAnnotationPresent(EvtBusName.class)

framework/src/main/java/dev/ikm/komet/framework/panel/axiom/LogicalOperatorsForVertex.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import java.util.Optional;
2525

26+
// TODO: can this class be replaced with LogicalAxiomSemantic?
2627
public enum LogicalOperatorsForVertex {
2728
/**
2829
* The necessary set.
@@ -55,7 +56,7 @@ public enum LogicalOperatorsForVertex {
5556
DEFINITION_ROOT(TinkarTerm.DEFINITION_ROOT),
5657

5758
/**
58-
* The role all.
59+
* A role
5960
*/
6061
ROLE(TinkarTerm.ROLE),
6162

@@ -71,7 +72,9 @@ public enum LogicalOperatorsForVertex {
7172

7273
PROPERTY_SET(TinkarTerm.PROPERTY_SET),
7374

74-
PROPERTY_PATTERN_IMPLICATION(TinkarTerm.PROPERTY_PATTERN_IMPLICATION);
75+
PROPERTY_PATTERN_IMPLICATION(TinkarTerm.PROPERTY_PATTERN_IMPLICATION),
76+
77+
IMPLICATION_SET(TinkarTerm.IMPLICATION_SET);
7578

7679
final ConceptFacade logicalMeaning;
7780

framework/src/main/java/dev/ikm/komet/framework/preferences/PreferencesTreeItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package dev.ikm.komet.framework.preferences;
1717

1818

19+
import dev.ikm.tinkar.common.service.PluggableService;
1920
import javafx.scene.control.TreeItem;
2021
import dev.ikm.komet.framework.view.ViewProperties;
2122
import dev.ikm.komet.preferences.KometPreferences;
@@ -61,7 +62,7 @@ static public Optional<PreferencesTreeItem> from(KometPreferences preferences,
6162
try {
6263
String propertySheetClassName = optionalPropertySheetClass.get();
6364

64-
Class preferencesSheetClass = Class.forName(propertySheetClassName);
65+
Class preferencesSheetClass = PluggableService.forName(propertySheetClassName);
6566
Constructor<PreferenceGroup> c = preferencesSheetClass.getConstructor(
6667
KometPreferences.class,
6768
ViewProperties.class,

framework/src/main/java/dev/ikm/komet/framework/rulebase/RuleServiceFinder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@
1919
import java.nio.file.Path;
2020
import java.util.NoSuchElementException;
2121
import java.util.Optional;
22-
import java.util.ServiceLoader;
22+
23+
import dev.ikm.tinkar.common.service.PluggableService;
2324

2425
public enum RuleServiceFinder {
2526
INSTANCE;
2627
RuleService service;
2728

2829
RuleServiceFinder() {
29-
ServiceLoader<RuleService> serviceLoader = ServiceLoader.load(RuleService.class);
30-
Optional<RuleService> optionalService = serviceLoader.findFirst();
30+
Optional<RuleService> optionalService = PluggableService.load(RuleService.class).findFirst();
3131
if (optionalService.isPresent()) {
3232
this.service = optionalService.get();
3333
} else {
3434
throw new NoSuchElementException("No " + RuleService.class.getName() +
35-
" found by ServiceLoader...");
35+
" found by PluggableService...");
3636
}
3737
}
3838

0 commit comments

Comments
 (0)