Log Message
Make Java 1.4 compatible.
Modified Paths
- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/XStream.java
- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/mapper/SecurityMapper.java
- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ExplicitTypePermission.java
- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ForbiddenClassException.java
- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/RegExpTypePermission.java
- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/WildcardTypePermission.java
- branches/v-1.4.x/xstream/src/test/com/thoughtworks/xstream/mapper/SecurityMapperTest.java
Diff
Modified: branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/XStream.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/XStream.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/XStream.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -2019,7 +2019,7 @@
* @param names the type names to allow
* @since upcoming
*/
- public void allowTypes(String... names) {
+ public void allowTypes(String[] names) {
addPermission(new ExplicitTypePermission(names));
}
@@ -2029,7 +2029,7 @@
* @param regexps the regular expressions to allow type names
* @since upcoming
*/
- public void allowTypesByRegExp(String... regexps) {
+ public void allowTypesByRegExp(String[] regexps) {
addPermission(new RegExpTypePermission(regexps));
}
@@ -2039,7 +2039,7 @@
* @param regexps the regular expressions to allow type names
* @since upcoming
*/
- public void allowTypesByRegExp(Pattern... regexps) {
+ public void allowTypesByRegExp(Pattern[] regexps) {
addPermission(new RegExpTypePermission(regexps));
}
@@ -2057,7 +2057,7 @@
* @param patterns the patterns to allow type names
* @since upcoming
*/
- public void allowTypesByWildcard(String... patterns) {
+ public void allowTypesByWildcard(String[] patterns) {
addPermission(new WildcardTypePermission(patterns));
}
@@ -2077,7 +2077,7 @@
* @param names the type names to forbid
* @since upcoming
*/
- public void denyTypes(String... names) {
+ public void denyTypes(String[] names) {
denyPermission(new ExplicitTypePermission(names));
}
@@ -2087,7 +2087,7 @@
* @param regexps the regular expressions to forbid type names
* @since upcoming
*/
- public void denyTypesByRegExp(String... regexps) {
+ public void denyTypesByRegExp(String[] regexps) {
denyPermission(new RegExpTypePermission(regexps));
}
@@ -2097,7 +2097,7 @@
* @param regexps the regular expressions to forbid type names
* @since upcoming
*/
- public void denyTypesByRegExp(Pattern... regexps) {
+ public void denyTypesByRegExp(Pattern[] regexps) {
denyPermission(new RegExpTypePermission(regexps));
}
@@ -2115,7 +2115,7 @@
* @param patterns the patterns to forbid names
* @since upcoming
*/
- public void denyTypesByWildcard(String... patterns) {
+ public void denyTypesByWildcard(String[] patterns) {
denyPermission(new WildcardTypePermission(patterns));
}
Modified: branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/mapper/SecurityMapper.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/mapper/SecurityMapper.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/mapper/SecurityMapper.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -25,7 +25,7 @@
*/
public class SecurityMapper extends MapperWrapper {
- private final List<TypePermission> permissions;
+ private final List permissions;
/**
* Construct a SecurityMapper.
@@ -44,11 +44,11 @@
* @param permissions the predefined permissions
* @since upcoming
*/
- public SecurityMapper(final Mapper wrapped, final TypePermission... permissions) {
+ public SecurityMapper(final Mapper wrapped, final TypePermission[] permissions) {
super(wrapped);
this.permissions = permissions == null //
- ? new ArrayList<TypePermission>()
- : new ArrayList<TypePermission>(Arrays.asList(permissions));
+ ? new ArrayList()
+ : new ArrayList(Arrays.asList(permissions));
}
/**
@@ -69,9 +69,11 @@
public Class realClass(final String elementName) {
final Class type = super.realClass(elementName);
- for (final TypePermission permission : permissions)
+ for (int i = 0; i < permissions.size(); ++i) {
+ final TypePermission permission = (TypePermission)permissions.get(i);
if (permission.allows(type))
return type;
+ }
throw new ForbiddenClassException(type);
}
}
Modified: branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ExplicitTypePermission.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ExplicitTypePermission.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ExplicitTypePermission.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -19,13 +19,13 @@
*/
public class ExplicitTypePermission implements TypePermission {
- final Set<String> names;
+ final Set names;
/**
* @since upcoming
*/
- public ExplicitTypePermission(String...names) {
- this.names = names == null ? Collections.<String>emptySet() : new HashSet<String>(Arrays.asList(names));
+ public ExplicitTypePermission(String[] names) {
+ this.names = names == null ? Collections.EMPTY_SET : new HashSet(Arrays.asList(names));
}
public boolean allows(Class type) {
Modified: branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ForbiddenClassException.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ForbiddenClassException.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/ForbiddenClassException.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -21,7 +21,7 @@
* @param type the forbidden class
* @since upcoming
*/
- public ForbiddenClassException(Class<?> type) {
+ public ForbiddenClassException(Class type) {
super(type == null ? "null" : type.getName());
}
}
Modified: branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/RegExpTypePermission.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/RegExpTypePermission.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/RegExpTypePermission.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -19,25 +19,25 @@
private final Pattern[] patterns;
- public RegExpTypePermission(final String... patterns) {
+ public RegExpTypePermission(final String[] patterns) {
this(getPatterns(patterns));
}
- public RegExpTypePermission(final Pattern... patterns) {
+ public RegExpTypePermission(final Pattern[] patterns) {
this.patterns = patterns == null ? new Pattern[0] : patterns;
}
public boolean allows(final Class type) {
if (type != null) {
final String name = type.getName();
- for (final Pattern pattern : patterns)
- if (pattern.matcher(name).matches())
+ for (int i = 0; i < patterns.length; ++i)
+ if (patterns[i].matcher(name).matches())
return true;
}
return false;
}
- private static Pattern[] getPatterns(final String... patterns) {
+ private static Pattern[] getPatterns(final String[] patterns) {
if (patterns == null)
return null;
final Pattern[] array = new Pattern[patterns.length];
Modified: branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/WildcardTypePermission.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/WildcardTypePermission.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/java/com/thoughtworks/xstream/security/WildcardTypePermission.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -29,11 +29,11 @@
/**
* @since upcoming
*/
- public WildcardTypePermission(final String... patterns) {
+ public WildcardTypePermission(final String[] patterns) {
super(getRegExpPatterns(patterns));
}
- private static String[] getRegExpPatterns(final String... wildcards) {
+ private static String[] getRegExpPatterns(final String[] wildcards) {
if (wildcards == null)
return null;
final String[] regexps = new String[wildcards.length];
Modified: branches/v-1.4.x/xstream/src/test/com/thoughtworks/xstream/mapper/SecurityMapperTest.java (2219 => 2220)
--- branches/v-1.4.x/xstream/src/test/com/thoughtworks/xstream/mapper/SecurityMapperTest.java 2014-01-22 18:29:40 UTC (rev 2219)
+++ branches/v-1.4.x/xstream/src/test/com/thoughtworks/xstream/mapper/SecurityMapperTest.java 2014-01-22 21:50:23 UTC (rev 2220)
@@ -43,21 +43,20 @@
classMap = new HashMap<String, Class<?>>();
mapper = new SecurityMapper(new MapperWrapper(null) {
- @Override
public Class realClass(final String elementName) {
return classMap.get(elementName);
}
});
}
- private void register(final Class<?>... types) {
- for (final Class<?> type : types) {
- classMap.put(type.getName(), type);
+ private void register(final Class[] types) {
+ for (int i = 0; i < types.length; ++i) {
+ classMap.put(types[i].getName(), types[i]);
}
}
public void testAnyType() {
- register(String.class, URL.class, List.class);
+ register(new Class[]{String.class, URL.class, List.class});
mapper.addPermission(NoTypePermission.NONE);
mapper.addPermission(AnyTypePermission.ANY);
assertSame(String.class, mapper.realClass(String.class.getName()));
@@ -66,7 +65,7 @@
}
public void testNoType() {
- register(String.class, URL.class, List.class);
+ register(new Class[]{String.class, URL.class, List.class});
mapper.addPermission(NoTypePermission.NONE);
try {
mapper.realClass(String.class.getName());
@@ -83,7 +82,7 @@
}
public void testNullType() {
- register(String.class, Mapper.Null.class);
+ register(new Class[]{String.class, Mapper.Null.class});
mapper.addPermission(NullPermission.NULL);
assertSame(Mapper.Null.class, mapper.realClass(Mapper.Null.class.getName()));
assertNull(mapper.realClass(null));
@@ -96,7 +95,7 @@
}
public void testPrimitiveTypes() {
- register(String.class, int.class, Integer.class, char[].class, Character[].class);
+ register(new Class[]{String.class, int.class, Integer.class, char[].class, Character[].class});
mapper.addPermission(PrimitiveTypePermission.PRIMITIVES);
assertSame(int.class, mapper.realClass(int.class.getName()));
assertSame(Integer.class, mapper.realClass(Integer.class.getName()));
@@ -121,7 +120,7 @@
}
public void testArrayTypes() {
- register(String.class, int.class, Integer.class, char[].class, Character[].class);
+ register(new Class[]{String.class, int.class, Integer.class, char[].class, Character[].class});
mapper.addPermission(ArrayTypePermission.ARRAYS);
assertSame(char[].class, mapper.realClass(char[].class.getName()));
assertSame(Character[].class, mapper.realClass(Character[].class.getName()));
@@ -146,8 +145,8 @@
}
public void testExplicitTypes() {
- register(String.class, List.class);
- mapper.addPermission(new ExplicitTypePermission(String.class.getName(), List.class.getName()));
+ register(new Class[]{String.class, List.class});
+ mapper.addPermission(new ExplicitTypePermission(new String[]{String.class.getName(), List.class.getName()}));
assertSame(String.class, mapper.realClass(String.class.getName()));
assertSame(List.class, mapper.realClass(List.class.getName()));
try {
@@ -160,9 +159,11 @@
public void testNamesWithRegExps() {
class Foo$_0 {}
- final Class<?> anonymous = new Object() {}.getClass();
- register(String.class, JVM.class, QuickWriter.class, Foo$_0.class, anonymous, DefaultClassMapperTest.class);
- mapper.addPermission(new RegExpTypePermission(".*Test", ".*\\.core\\..*", ".*SecurityMapperTest\\$.+"));
+ final Class anonymous = new Object() {}.getClass();
+ register(new Class[]{
+ String.class, JVM.class, QuickWriter.class, Foo$_0.class, anonymous, DefaultClassMapperTest.class});
+ mapper.addPermission(new RegExpTypePermission(new String[]{
+ ".*Test", ".*\\.core\\..*", ".*SecurityMapperTest\\$.+"}));
assertSame(DefaultClassMapperTest.class, mapper.realClass(DefaultClassMapperTest.class.getName()));
assertSame(JVM.class, mapper.realClass(JVM.class.getName()));
assertSame(QuickWriter.class, mapper.realClass(QuickWriter.class.getName()));
@@ -179,9 +180,10 @@
public void testNamesWithWildcardPatterns() {
class Foo$_0 {}
class Foo$_1 {}
- final Class<?> anonymous = new Object() {}.getClass();
- register(String.class, JVM.class, QuickWriter.class, Foo$_0.class, Foo$_1.class, anonymous);
- mapper.addPermission(new WildcardTypePermission("**.*_0", "**.core.*", "**.SecurityMapperTest$?"));
+ final Class anonymous = new Object() {}.getClass();
+ register(new Class[]{String.class, JVM.class, QuickWriter.class, Foo$_0.class, Foo$_1.class, anonymous});
+ mapper
+ .addPermission(new WildcardTypePermission(new String[]{"**.*_0", "**.core.*", "**.SecurityMapperTest$?"}));
assertSame(JVM.class, mapper.realClass(JVM.class.getName()));
assertSame(Foo$_0.class, mapper.realClass(Foo$_0.class.getName()));
assertSame(anonymous, mapper.realClass(anonymous.getName()));
To unsubscribe from this list please visit:
