23
23
import org .jboss .as .controller .descriptions .ResourceDescriptionResolver ;
24
24
import org .jboss .as .controller .registry .ManagementResourceRegistration ;
25
25
import org .jboss .as .controller .registry .OperationEntry ;
26
+ import org .jboss .as .controller .registry .RuntimePackageDependency ;
26
27
import org .jboss .as .version .Stability ;
27
28
28
29
/**
@@ -36,10 +37,25 @@ final class TrivialResourceDefinition extends SimpleResourceDefinition {
36
37
private final Map <OperationDefinition , OperationStepHandler > operations ;
37
38
private final Map <AttributeDefinition , OperationStepHandler > readOnlyAttributes ;
38
39
private final List <ResourceDefinition > children ;
40
+ private final String dependencyPackageName ;
41
+
42
+ TrivialResourceDefinition (String pathKey , ResourceDescriptionResolver resourceDescriptionResolver , AbstractAddStepHandler add , AttributeDefinition [] attributes , RuntimeCapability <?> ... runtimeCapabilities ) {
43
+ this (pathKey , resourceDescriptionResolver , add , new TrivialCapabilityServiceRemoveHandler (add , runtimeCapabilities ), attributes , null , null , null , runtimeCapabilities , Stability .DEFAULT );
44
+ }
45
+
46
+ TrivialResourceDefinition (String pathKey , AbstractAddStepHandler add , AttributeDefinition [] attributes , RuntimeCapability <?> ... runtimeCapabilities ) {
47
+ this (pathKey , ElytronExtension .getResourceDescriptionResolver (pathKey ), add , new TrivialCapabilityServiceRemoveHandler (add , runtimeCapabilities ), attributes , null , null , null , runtimeCapabilities , Stability .DEFAULT );
48
+ }
49
+
50
+ private TrivialResourceDefinition (String pathKey , ResourceDescriptionResolver resourceDescriptionResolver , AbstractAddStepHandler add , AbstractRemoveStepHandler remove , AttributeDefinition [] attributes ,
51
+ Map <AttributeDefinition , OperationStepHandler > readOnlyAttributes , Map <OperationDefinition , OperationStepHandler > operations , List <ResourceDefinition > children ,
52
+ RuntimeCapability <?>[] runtimeCapabilities , Stability stability ) {
53
+ this (pathKey , resourceDescriptionResolver , add , remove , attributes , readOnlyAttributes , operations , children , runtimeCapabilities , stability , null );
54
+ }
39
55
40
56
private TrivialResourceDefinition (String pathKey , ResourceDescriptionResolver resourceDescriptionResolver , AbstractAddStepHandler add , AbstractRemoveStepHandler remove , AttributeDefinition [] attributes ,
41
57
Map <AttributeDefinition , OperationStepHandler > readOnlyAttributes , Map <OperationDefinition , OperationStepHandler > operations , List <ResourceDefinition > children ,
42
- RuntimeCapability <?>[] runtimeCapabilities , Stability stability ) {
58
+ RuntimeCapability <?>[] runtimeCapabilities , Stability stability , String dependencyPackageName ) {
43
59
super (new Parameters (ResourceRegistration .of (PathElement .pathElement (pathKey ), stability ),
44
60
resourceDescriptionResolver )
45
61
.setAddHandler (add )
@@ -52,14 +68,7 @@ private TrivialResourceDefinition(String pathKey, ResourceDescriptionResolver re
52
68
this .readOnlyAttributes = readOnlyAttributes ;
53
69
this .operations = operations ;
54
70
this .children = children ;
55
- }
56
-
57
- TrivialResourceDefinition (String pathKey , ResourceDescriptionResolver resourceDescriptionResolver , AbstractAddStepHandler add , AttributeDefinition [] attributes , RuntimeCapability <?> ... runtimeCapabilities ) {
58
- this (pathKey , resourceDescriptionResolver , add , new TrivialCapabilityServiceRemoveHandler (add , runtimeCapabilities ), attributes , null , null , null , runtimeCapabilities , Stability .DEFAULT );
59
- }
60
-
61
- TrivialResourceDefinition (String pathKey , AbstractAddStepHandler add , AttributeDefinition [] attributes , RuntimeCapability <?> ... runtimeCapabilities ) {
62
- this (pathKey , ElytronExtension .getResourceDescriptionResolver (pathKey ), add , new TrivialCapabilityServiceRemoveHandler (add , runtimeCapabilities ), attributes , null , null , null , runtimeCapabilities , Stability .DEFAULT );
71
+ this .dependencyPackageName = dependencyPackageName ;
63
72
}
64
73
65
74
@ Override
@@ -97,6 +106,13 @@ public void registerChildren(ManagementResourceRegistration resourceRegistration
97
106
}
98
107
}
99
108
109
+ @ Override
110
+ public void registerAdditionalRuntimePackages (ManagementResourceRegistration resourceRegistration ) {
111
+ if (dependencyPackageName != null ) {
112
+ resourceRegistration .registerAdditionalRuntimePackages (RuntimePackageDependency .required (dependencyPackageName ));
113
+ }
114
+ }
115
+
100
116
public AttributeDefinition [] getAttributes () {
101
117
return attributes ;
102
118
}
@@ -117,6 +133,7 @@ static class Builder {
117
133
private RuntimeCapability <?>[] runtimeCapabilities ;
118
134
private List <ResourceDefinition > children ;
119
135
private Stability stability = Stability .DEFAULT ;
136
+ private String dependencyPackageName ;
120
137
121
138
Builder () {}
122
139
@@ -189,11 +206,16 @@ Builder addChild(ResourceDefinition child) {
189
206
return this ;
190
207
}
191
208
209
+ Builder setDependencyPackageName (String dependencyPackageName ) {
210
+ this .dependencyPackageName = dependencyPackageName ;
211
+ return this ;
212
+ }
213
+
192
214
ResourceDefinition build () {
193
215
ResourceDescriptionResolver resourceDescriptionResolver = this .resourceDescriptionResolver != null ? this .resourceDescriptionResolver : ElytronExtension .getResourceDescriptionResolver (pathKey );
194
216
return new TrivialResourceDefinition (pathKey , resourceDescriptionResolver , addHandler ,
195
217
removeHandler != null ? removeHandler : new TrivialCapabilityServiceRemoveHandler (addHandler , runtimeCapabilities ),
196
- attributes , readOnlyAttributes , operations , children , runtimeCapabilities , stability );
218
+ attributes , readOnlyAttributes , operations , children , runtimeCapabilities , stability , dependencyPackageName );
197
219
}
198
220
199
221
}
0 commit comments