Skip to content

Commit 853c4b1

Browse files
committed
Merge remote-tracking branch 'origin/master' into tls-testsuite
# Conflicts: # src/main/java/de/rub/nds/modifiablevariable/util/XMLPrettyPrinter.java
2 parents be99d64 + db91c91 commit 853c4b1

File tree

53 files changed

+373
-247
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+373
-247
lines changed

.travis.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
language: java
2-
dist: trusty
2+
dist: bionic
33
sudo: false
44

55
jdk:
6-
- oraclejdk8
7-
- openjdk7
6+
# - oraclejdk8 # deactivated b/c travis does not support this version in any distro > trusty
7+
- oraclejdk11
88
- openjdk8
9+
- openjdk11
910

1011
#branches:
1112
# only:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ If you want to use modifiable variables in your maven projects, you can include
3434
<dependency>
3535
<groupId>de.rub.nds</groupId>
3636
<artifactId>ModifiableVariable</artifactId>
37-
<version>2.6</version>
37+
<version>3.0.0</version>
3838
</dependency>
3939
```
4040

nb-configuration.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@
2222
<de-markiewb-netbeans-plugins-eclipse-formatter.eclipseFormatterEnabled>true</de-markiewb-netbeans-plugins-eclipse-formatter.eclipseFormatterEnabled>
2323
<de-markiewb-netbeans-plugins-eclipse-formatter.enableFormatAsSaveAction>false</de-markiewb-netbeans-plugins-eclipse-formatter.enableFormatAsSaveAction>
2424
<de-markiewb-netbeans-plugins-eclipse-formatter.useProjectSettings>true</de-markiewb-netbeans-plugins-eclipse-formatter.useProjectSettings>
25-
<netbeans.hint.jdkPlatform>JDK_1.7</netbeans.hint.jdkPlatform>
25+
<netbeans.hint.jdkPlatform>JDK_1.8</netbeans.hint.jdkPlatform>
2626
</properties>
2727
</project-shared-configuration>

pom.xml

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>de.rub.nds</groupId>
55
<artifactId>ModifiableVariable</artifactId>
6-
<version>2.7</version>
6+
<version>3.1.0</version>
77
<packaging>jar</packaging>
88

99
<name>ModifiableVariable</name>
@@ -66,22 +66,37 @@
6666
<dependency>
6767
<groupId>junit</groupId>
6868
<artifactId>junit</artifactId>
69-
<version>4.12</version>
69+
<version>4.13.1</version>
7070
<scope>test</scope>
7171
</dependency>
7272
<dependency>
7373
<groupId>org.apache.logging.log4j</groupId>
7474
<artifactId>log4j-api</artifactId>
75-
<version>2.13.2</version>
75+
<version>2.13.3</version>
7676
</dependency>
7777
<dependency>
7878
<groupId>org.apache.logging.log4j</groupId>
7979
<artifactId>log4j-core</artifactId>
80-
<version>2.13.2</version>
80+
<version>2.13.3</version>
81+
</dependency>
82+
<dependency>
83+
<groupId>javax.xml.bind</groupId>
84+
<artifactId>jaxb-api</artifactId>
85+
<version>2.3.1</version>
86+
</dependency>
87+
<dependency>
88+
<groupId>org.glassfish.jaxb</groupId>
89+
<artifactId>jaxb-runtime</artifactId>
90+
<version>2.3.3</version>
8191
</dependency>
8292
</dependencies>
8393
<build>
8494
<plugins>
95+
<plugin>
96+
<groupId>org.codehaus.mojo</groupId>
97+
<artifactId>versions-maven-plugin</artifactId>
98+
<version>2.8.1</version>
99+
</plugin>
85100
<plugin>
86101
<groupId>net.revelc.code</groupId>
87102
<artifactId>formatter-maven-plugin</artifactId>
@@ -100,6 +115,29 @@
100115
</executions>
101116
</plugin>
102117
<plugin>
118+
<groupId>org.apache.maven.plugins</groupId>
119+
<artifactId>maven-enforcer-plugin</artifactId>
120+
<version>3.0.0-M3</version>
121+
<executions>
122+
<execution>
123+
<id>default-cli</id>
124+
<goals>
125+
<goal>enforce</goal>
126+
</goals>
127+
<configuration>
128+
<rules>
129+
<requireMavenVersion>
130+
<version>3.1</version>
131+
</requireMavenVersion>
132+
<requireJavaVersion>
133+
<version>1.8,11</version>
134+
</requireJavaVersion>
135+
</rules>
136+
</configuration>
137+
</execution>
138+
</executions>
139+
</plugin>
140+
<plugin>
103141
<groupId>org.apache.maven.plugins</groupId>
104142
<artifactId>maven-source-plugin</artifactId>
105143
<version>3.0.1</version>
@@ -115,15 +153,18 @@
115153
<plugin>
116154
<groupId>org.apache.maven.plugins</groupId>
117155
<artifactId>maven-javadoc-plugin</artifactId>
118-
<version>2.10.4</version>
156+
<version>3.2.0</version>
157+
<configuration>
158+
<source>8</source>
159+
</configuration>
119160
<executions>
120161
<execution>
121162
<id>attach-javadocs</id>
122163
<goals>
123164
<goal>jar</goal>
124165
</goals>
125-
</execution>
126-
</executions>
166+
</execution>
167+
</executions>
127168
</plugin>
128169
<plugin>
129170
<groupId>org.apache.maven.plugins</groupId>
@@ -154,14 +195,20 @@
154195
<autoReleaseAfterClose>false</autoReleaseAfterClose>
155196
</configuration>
156197
</plugin>
198+
<plugin>
199+
<groupId>org.apache.maven.plugins</groupId>
200+
<artifactId>maven-compiler-plugin</artifactId>
201+
<configuration>
202+
<source>8</source>
203+
<target>8</target>
204+
</configuration>
205+
</plugin>
157206
</plugins>
158207
</build>
159208

160209
<properties>
161210
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
162211
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
163-
<maven.compiler.source>1.7</maven.compiler.source>
164-
<maven.compiler.target>1.7</maven.compiler.target>
165212
<!-- We redefine the signature generation process, whic is enabled by default,
166213
but cannot be performed by typical users. Enable it using -Dskip.signature=false -->
167214
<skip.signature>true</skip.signature>

src/main/java/de/rub/nds/modifiablevariable/ModifiableVariable.java

Lines changed: 82 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,107 @@
88
*/
99
package de.rub.nds.modifiablevariable;
1010

11+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerAddModification;
12+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerExplicitValueModification;
13+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerInteractiveModification;
14+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerShiftLeftModification;
15+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerShiftRightModification;
16+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerSubtractModification;
17+
import de.rub.nds.modifiablevariable.biginteger.BigIntegerXorModification;
18+
import de.rub.nds.modifiablevariable.bool.BooleanExplicitValueModification;
19+
import de.rub.nds.modifiablevariable.bool.BooleanToggleModification;
20+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayDeleteModification;
21+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayDuplicateModification;
22+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
23+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayInsertModification;
24+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayPayloadModification;
25+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayShuffleModification;
26+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayXorModification;
27+
import de.rub.nds.modifiablevariable.integer.IntegerAddModification;
28+
import de.rub.nds.modifiablevariable.integer.IntegerExplicitValueModification;
29+
import de.rub.nds.modifiablevariable.integer.IntegerShiftLeftModification;
30+
import de.rub.nds.modifiablevariable.integer.IntegerShiftRightModification;
31+
import de.rub.nds.modifiablevariable.integer.IntegerSubtractModification;
32+
import de.rub.nds.modifiablevariable.integer.IntegerXorModification;
33+
import de.rub.nds.modifiablevariable.mlong.LongAddModification;
34+
import de.rub.nds.modifiablevariable.mlong.LongExplicitValueModification;
35+
import de.rub.nds.modifiablevariable.mlong.LongSubtractModification;
36+
import de.rub.nds.modifiablevariable.mlong.LongXorModification;
37+
import de.rub.nds.modifiablevariable.singlebyte.ByteAddModification;
38+
import de.rub.nds.modifiablevariable.singlebyte.ByteExplicitValueModification;
39+
import de.rub.nds.modifiablevariable.singlebyte.ByteSubtractModification;
40+
import de.rub.nds.modifiablevariable.singlebyte.ByteXorModification;
41+
import de.rub.nds.modifiablevariable.string.StringExplicitValueModification;
42+
import de.rub.nds.modifiablevariable.util.ByteArrayAdapter;
1143
import java.io.Serializable;
12-
import javax.xml.bind.annotation.XmlAnyElement;
13-
import javax.xml.bind.annotation.XmlAttribute;
44+
import java.util.Objects;
45+
import javax.xml.bind.annotation.XmlAccessType;
46+
import javax.xml.bind.annotation.XmlAccessorType;
47+
import javax.xml.bind.annotation.XmlElement;
48+
import javax.xml.bind.annotation.XmlElements;
1449
import javax.xml.bind.annotation.XmlRootElement;
1550
import javax.xml.bind.annotation.XmlTransient;
51+
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
1652

1753
/**
1854
* The base abstract class for modifiable variables, including the getValue
19-
* function.
20-
*
21-
* The class needs to be defined transient to allow propOrder definition in
22-
* subclasses, see:
55+
* function.The class needs to be defined transient to allow propOrder
56+
* definition in subclasses, see:
2357
* http://blog.bdoughan.com/2011/06/ignoring-inheritance-with-xmltransient.html
2458
*
59+
*
60+
* @param <E>
2561
*/
2662
@XmlRootElement
2763
@XmlTransient
64+
@XmlAccessorType(XmlAccessType.FIELD)
65+
@XmlJavaTypeAdapter(value = ByteArrayAdapter.class, type = byte[].class)
2866
public abstract class ModifiableVariable<E> implements Serializable {
2967

3068
protected Boolean autoformat = null;
3169

70+
@XmlElements(value = {
71+
@XmlElement(type = BigIntegerXorModification.class, name = "BigIntegerXorModification"),
72+
@XmlElement(type = BigIntegerSubtractModification.class, name = "BigIntegerSubtractModification"),
73+
@XmlElement(type = BigIntegerShiftRightModification.class, name = "BigIntegerShiftRightModification"),
74+
@XmlElement(type = BigIntegerShiftLeftModification.class, name = "BigIntegerShiftLeftModification"),
75+
@XmlElement(type = BigIntegerExplicitValueModification.class, name = "BigIntegerExplicitValueModification"),
76+
@XmlElement(type = BigIntegerAddModification.class, name = "BigIntegerAddModification"),
77+
@XmlElement(type = BigIntegerInteractiveModification.class, name = "BigIntegerInteractiveModification"),
78+
@XmlElement(type = BooleanToggleModification.class, name = "BooleanToggleModification"),
79+
@XmlElement(type = BooleanExplicitValueModification.class, name = "BooleanExplicitValueModification"),
80+
@XmlElement(type = ByteArrayXorModification.class, name = "ByteArrayXorModification"),
81+
@XmlElement(type = ByteArrayShuffleModification.class, name = "ByteArrayShuffleModification"),
82+
@XmlElement(type = ByteArrayPayloadModification.class, name = "ByteArrayPayloadModification"),
83+
@XmlElement(type = ByteArrayInsertModification.class, name = "ByteArrayInsertModification"),
84+
@XmlElement(type = ByteArrayExplicitValueModification.class, name = "ByteArrayExplicitValueModification"),
85+
@XmlElement(type = ByteArrayDuplicateModification.class, name = "ByteArrayDuplicateModification"),
86+
@XmlElement(type = ByteArrayDeleteModification.class, name = "ByteArrayDeleteModification"),
87+
@XmlElement(type = IntegerXorModification.class, name = "IntegerXorModification"),
88+
@XmlElement(type = IntegerSubtractModification.class, name = "IntegerSubtractModification"),
89+
@XmlElement(type = IntegerShiftRightModification.class, name = "IntegerShiftRightModification"),
90+
@XmlElement(type = IntegerShiftLeftModification.class, name = "IntegerShiftLeftModification"),
91+
@XmlElement(type = IntegerExplicitValueModification.class, name = "IntegerExplicitValueModification"),
92+
@XmlElement(type = IntegerAddModification.class, name = "IntegerAddModification"),
93+
@XmlElement(type = LongXorModification.class, name = "LongXorModification"),
94+
@XmlElement(type = LongSubtractModification.class, name = "LongSubtractModification"),
95+
@XmlElement(type = LongExplicitValueModification.class, name = "LongExplicitValueModification"),
96+
@XmlElement(type = LongAddModification.class, name = "LongAddModification"),
97+
@XmlElement(type = ByteXorModification.class, name = "ByteXorModification"),
98+
@XmlElement(type = ByteSubtractModification.class, name = "ByteSubtractModification"),
99+
@XmlElement(type = ByteAddModification.class, name = "ByteAddModification"),
100+
@XmlElement(type = ByteExplicitValueModification.class, name = "ByteExplicitValueModification"),
101+
@XmlElement(type = StringExplicitValueModification.class, name = "StringExplicitValueModification") })
32102
private VariableModification<E> modification = null;
33103

34-
private boolean createRandomModification;
104+
private Boolean createRandomModification;
35105

36106
protected E assertEquals;
37107

38108
public ModifiableVariable() {
39109

40110
}
41111

42-
@XmlAttribute(required = false)
43112
public Boolean getAutoformat() {
44113
return autoformat;
45114
}
@@ -52,13 +121,12 @@ public void setModification(VariableModification<E> modification) {
52121
this.modification = modification;
53122
}
54123

55-
@XmlAnyElement(lax = true)
56124
public VariableModification<E> getModification() {
57125
return modification;
58126
}
59127

60128
public E getValue() {
61-
if (createRandomModification) {
129+
if (Objects.equals(createRandomModification, Boolean.TRUE)) {
62130
createRandomModification();
63131
createRandomModification = false;
64132
}
@@ -87,7 +155,10 @@ public boolean containsAssertion() {
87155
return (assertEquals != null);
88156
}
89157

90-
public boolean isCreateRandomModification() {
158+
public Boolean isCreateRandomModification() {
159+
if (createRandomModification == null) {
160+
return false;
161+
}
91162
return createRandomModification;
92163
}
93164
}

0 commit comments

Comments
 (0)