Skip to content

Commit 2f12131

Browse files
committed
Add MLet Refinements
1 parent 0d2d547 commit 2f12131

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.mLet;
2+
3+
import java.net.URL;
4+
import java.net.URLStreamHandlerFactory;
5+
import java.util.Set;
6+
7+
import liquidjava.specification.ExternalRefinementsFor;
8+
import liquidjava.specification.StateRefinement;
9+
import liquidjava.specification.StateSet;
10+
11+
@ExternalRefinementsFor("javax.management.loading.MLet")
12+
@StateSet({"unregistered", "registered"})
13+
public interface MLetRefinements {
14+
15+
@StateRefinement(to="unregistered(this)")
16+
public void MLet();
17+
18+
@StateRefinement(to="unregistered(this)")
19+
public void MLet(URL[] urls);
20+
21+
@StateRefinement(to="unregistered(this)")
22+
public void MLet(URL[] urls, ClassLoader parent);
23+
24+
@StateRefinement(to="unregistered(this)")
25+
public void MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory);
26+
27+
@StateRefinement(to="unregistered(this)")
28+
public void MLet(URL[] urls, boolean delegateToCLR);
29+
30+
@StateRefinement(to="unregistered(this)")
31+
public void MLet(URL[] urls, ClassLoader parent, boolean delegateToCLR);
32+
33+
@StateRefinement(to="unregistered(this)")
34+
public void MLet(URL[] urls, ClassLoader parent, URLStreamHandlerFactory factory, boolean delegateToCLR);
35+
36+
// cant write "registrationDone ? registered(this) : unregistered(this)"" because it uses Boolean instead of boolean
37+
@StateRefinement(from="unregistered(this)", to="registered(this)")
38+
public void postRegister(Boolean registrationDone);
39+
40+
@StateRefinement(from="registered(this)")
41+
public void preDeregister();
42+
43+
@StateRefinement(from="registered(this)", to="unregistered(this)")
44+
public void postDeregister();
45+
46+
@StateRefinement(from="registered(this)")
47+
public Set<Object> getMBeansFromURL(URL url);
48+
49+
@StateRefinement(from="registered(this)")
50+
public Set<Object> getMBeansFromURL(String url);
51+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.mLet;
2+
3+
import javax.management.loading.MLet;
4+
5+
public class MLetTests {
6+
7+
public void testOk() throws Exception {
8+
MLet mlet = new MLet();
9+
mlet.addURL("");
10+
mlet.preRegister(null, null);
11+
mlet.postRegister(true);
12+
mlet.preDeregister();
13+
mlet.postDeregister();
14+
}
15+
16+
public void testNotRegistering() throws Exception {
17+
MLet mlet = new MLet();
18+
mlet.addURL("");
19+
mlet.preRegister(null, null);
20+
mlet.getMBeansFromURL(""); // error
21+
}
22+
23+
public void testUnregisterTwice() throws Exception {
24+
MLet mlet = new MLet();
25+
mlet.addURL("");
26+
mlet.preRegister(null, null);
27+
mlet.postRegister(true);
28+
mlet.preDeregister();
29+
mlet.postDeregister();
30+
mlet.postDeregister(); // error
31+
}
32+
}

0 commit comments

Comments
 (0)