Skip to content

Commit f5de5df

Browse files
Use AutoClosable for cleanups of PlexusContext
1 parent b37ca9e commit f5de5df

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

‎src/main/java/org/codehaus/plexus/testing/PlexusExtension.java‎

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,23 @@
6464
*/
6565
publicclassPlexusExtensionimplementsBeforeEachCallback, AfterEachCallback{
6666

67+
privatestaticclassPlexusClosableWrapperimplementsAutoCloseable{
68+
privatefinalPlexusContainercontainer;
69+
70+
PlexusClosableWrapper(PlexusContainercontainer){
71+
this.container = container;
72+
}
73+
74+
@Override
75+
publicvoidclose(){
76+
container.dispose();
77+
}
78+
79+
publicPlexusContainerget(){
80+
returncontainer;
81+
}
82+
}
83+
6784
privatestaticfinalExtensionContext.NamespacePLEXUS_EXTENSION =
6885
ExtensionContext.Namespace.create("PlexusExtension");
6986

@@ -140,7 +157,7 @@ private PlexusContainer setupContainer(ExtensionContext context){
140157
thrownewIllegalArgumentException("Failed to create plexus container.", e);
141158
}
142159
testInstanceCustomizeContainer(container, context);
143-
context.getStore(PLEXUS_EXTENSION).put(PlexusContainer.class, container);
160+
context.getStore(PLEXUS_EXTENSION).put(PlexusClosableWrapper.class, newPlexusClosableWrapper(container));
144161

145162
returncontainer;
146163
}
@@ -175,11 +192,7 @@ protected void customizeContext(Context context){}
175192

176193
@Override
177194
publicvoidafterEach(ExtensionContextcontext) throwsException{
178-
PlexusContainercontainer =
179-
context.getStore(PLEXUS_EXTENSION).remove(PlexusContainer.class, PlexusContainer.class);
180-
if (container != null){
181-
container.dispose();
182-
}
195+
// empty method, not used
183196
}
184197

185198
/**
@@ -211,12 +224,12 @@ protected void setTestBasedir(String testBasedir, ExtensionContext context){
211224
}
212225

213226
publicPlexusContainergetContainer(ExtensionContextcontext){
214-
PlexusContainercontainer =
215-
context.getStore(PLEXUS_EXTENSION).get(PlexusContainer.class, PlexusContainer.class);
227+
PlexusClosableWrappercontainer =
228+
context.getStore(PLEXUS_EXTENSION).get(PlexusClosableWrapper.class, PlexusClosableWrapper.class);
216229
if (container == null){
217230
returnsetupContainer(context);
218231
}
219-
returncontainer;
232+
returncontainer.get();
220233
}
221234

222235
protectedStringgetCustomConfigurationName(){

0 commit comments

Comments
(0)