Skip to content

Commit 97e899d

Browse files
committed
move security attribute to security plugin.
Signed-off-by: Ruirui Zhang <[email protected]>
1 parent ab90add commit 97e899d

File tree

19 files changed

+150
-249
lines changed

19 files changed

+150
-249
lines changed

modules/autotagging-commons/common/src/main/java/org/opensearch/rule/RuleAttribute.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
import org.opensearch.rule.autotagging.Attribute;
1212

13-
import java.util.TreeMap;
14-
1513
/**
1614
* Generic Rule attributes that features can use out of the use by using the lib.
1715
* @opensearch.experimental
@@ -34,11 +32,6 @@ public String getName() {
3432
return name;
3533
}
3634

37-
@Override
38-
public TreeMap<Integer, String> getPrioritizedSubfields() {
39-
return new TreeMap<>();
40-
}
41-
4235
/**
4336
* Retrieves the RuleAttribute from a name string
4437
* @param name - attribute name

modules/autotagging-commons/common/src/main/java/org/opensearch/rule/SecurityAttribute.java

Lines changed: 0 additions & 123 deletions
This file was deleted.

modules/autotagging-commons/common/src/main/java/org/opensearch/rule/autotagging/Attribute.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ public interface Attribute extends Writeable {
3838
/**
3939
* Returns a map of subfields ordered by priority, where 1 represents the highest priority.
4040
*/
41-
TreeMap<Integer, String> getPrioritizedSubfields();
41+
default TreeMap<Integer, String> getPrioritizedSubfields() {
42+
return new TreeMap<>();
43+
}
4244

4345
/**
4446
* Ensure that `validateAttribute` is called in the constructor of attribute implementations

modules/autotagging-commons/common/src/test/java/org/opensearch/rule/SecurityAttributeTests.java

Lines changed: 0 additions & 78 deletions
This file was deleted.

modules/autotagging-commons/common/src/test/java/org/opensearch/rule/autotagging/RuleTests.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.time.Instant;
2121
import java.util.Map;
2222
import java.util.Set;
23-
import java.util.TreeMap;
2423

2524
import static org.opensearch.rule.autotagging.RuleTests.TestAttribute.TEST_ATTRIBUTE_1;
2625
import static org.opensearch.rule.autotagging.RuleTests.TestAttribute.TEST_ATTRIBUTE_2;
@@ -71,11 +70,6 @@ public enum TestAttribute implements Attribute {
7170
public String getName() {
7271
return name;
7372
}
74-
75-
@Override
76-
public TreeMap<Integer, String> getPrioritizedSubfields() {
77-
return new TreeMap<>();
78-
}
7973
}
8074

8175
public static class TestFeatureType implements FeatureType {

modules/autotagging-commons/common/src/test/java/org/opensearch/rule/utils/RuleTestUtils.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import java.util.List;
1818
import java.util.Map;
1919
import java.util.Set;
20-
import java.util.TreeMap;
2120

2221
import static org.junit.Assert.assertEquals;
2322

@@ -128,10 +127,5 @@ public enum MockRuleAttributes implements Attribute {
128127
public String getName() {
129128
return name;
130129
}
131-
132-
@Override
133-
public TreeMap<Integer, String> getPrioritizedSubfields() {
134-
return new TreeMap<>();
135-
}
136130
}
137131
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*/
8+
9+
package org.opensearch.rule.spi;
10+
11+
import org.opensearch.rule.autotagging.Attribute;
12+
13+
/**
14+
* Represents a custom attribute extension for the rule framework.
15+
* Implementations provide a single attribute to be used in auto tagging.
16+
*/
17+
public interface AttributesExtension {
18+
/**
19+
* Returns the attribute provided by this extension.
20+
*/
21+
Attribute getAttribute();
22+
}

modules/autotagging-commons/spi/src/main/java/org/opensearch/rule/spi/RuleFrameworkExtension.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010

1111
import org.opensearch.rule.RulePersistenceService;
1212
import org.opensearch.rule.RuleRoutingService;
13+
import org.opensearch.rule.autotagging.Attribute;
1314
import org.opensearch.rule.autotagging.FeatureType;
1415

16+
import java.util.List;
1517
import java.util.function.Supplier;
1618

1719
/**
@@ -36,4 +38,10 @@ public interface RuleFrameworkExtension {
3638
* @return the specific implementation of FeatureType
3739
*/
3840
Supplier<FeatureType> getFeatureTypeSupplier();
41+
42+
/**
43+
* Flow attributes from RuleFrameworkExtension to implementation plugins
44+
* @param attributes
45+
*/
46+
void setAttributes(List<Attribute> attributes);
3947
}

modules/autotagging-commons/src/main/java/org/opensearch/rule/RuleFrameworkPlugin.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,14 @@
3030
import org.opensearch.rule.action.TransportGetRuleAction;
3131
import org.opensearch.rule.action.TransportUpdateRuleAction;
3232
import org.opensearch.rule.action.UpdateRuleAction;
33+
import org.opensearch.rule.autotagging.Attribute;
3334
import org.opensearch.rule.autotagging.AutoTaggingRegistry;
3435
import org.opensearch.rule.autotagging.FeatureType;
3536
import org.opensearch.rule.rest.RestCreateRuleAction;
3637
import org.opensearch.rule.rest.RestDeleteRuleAction;
3738
import org.opensearch.rule.rest.RestGetRuleAction;
3839
import org.opensearch.rule.rest.RestUpdateRuleAction;
40+
import org.opensearch.rule.spi.AttributesExtension;
3941
import org.opensearch.rule.spi.RuleFrameworkExtension;
4042
import org.opensearch.threadpool.ExecutorBuilder;
4143
import org.opensearch.threadpool.FixedExecutorBuilder;
@@ -115,6 +117,11 @@ public Collection<Module> createGuiceModules() {
115117
@Override
116118
public void loadExtensions(ExtensionLoader loader) {
117119
ruleFrameworkExtensions.addAll(loader.loadExtensions(RuleFrameworkExtension.class));
120+
Collection<AttributesExtension> attributesExtensions = loader.loadExtensions(AttributesExtension.class);
121+
List<Attribute> attributes = attributesExtensions.stream().map(AttributesExtension::getAttribute).toList();
122+
for (RuleFrameworkExtension ruleFrameworkExtension : ruleFrameworkExtensions) {
123+
ruleFrameworkExtension.setAttributes(attributes);
124+
}
118125
}
119126

120127
private void consumeFrameworkExtension(RuleFrameworkExtension ruleFrameworkExtension) {

modules/autotagging-commons/src/test/java/org/opensearch/rule/InMemoryRuleProcessingServiceTests.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.util.Map;
2222
import java.util.Optional;
2323
import java.util.Set;
24-
import java.util.TreeMap;
2524

2625
public class InMemoryRuleProcessingServiceTests extends OpenSearchTestCase {
2726
InMemoryRuleProcessingService sut;
@@ -170,11 +169,6 @@ public String getName() {
170169
return name;
171170
}
172171

173-
@Override
174-
public TreeMap<Integer, String> getPrioritizedSubfields() {
175-
return new TreeMap<>();
176-
}
177-
178172
@Override
179173
public void validateAttribute() {}
180174
}

0 commit comments

Comments
 (0)