Skip to content

Commit

Permalink
Removed usages of javax.xml.bind classes #324
Browse files Browse the repository at this point in the history
  • Loading branch information
Jan Schäfer committed Oct 8, 2017
1 parent 2c06dcf commit da88262
Show file tree
Hide file tree
Showing 10 changed files with 103 additions and 46 deletions.
@@ -1,31 +1,32 @@
package com.tngtech.jgiven.report.html5;

import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Set;

import javax.imageio.ImageIO;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Charsets;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multiset;
import com.google.common.collect.Sets;
import com.google.common.io.BaseEncoding;
import com.google.common.io.Files;
import com.google.common.net.MediaType;
import com.tngtech.jgiven.exception.JGivenInstallationException;
import com.tngtech.jgiven.report.model.AttachmentModel;
import com.tngtech.jgiven.report.model.ReportModel;
import com.tngtech.jgiven.report.model.ReportModelVisitor;
import com.tngtech.jgiven.report.model.StepModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.imageio.ImageIO;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Set;

import static javax.xml.bind.DatatypeConverter.parseBase64Binary;

class Html5AttachmentGenerator extends ReportModelVisitor {
private static final Logger log = LoggerFactory.getLogger( Html5AttachmentGenerator.class );
Expand Down Expand Up @@ -132,7 +133,7 @@ private File writeFile( AttachmentModel attachment, MediaType mediaType ) {
byte[] thumbnail = compressToThumbnail( attachment.getValue(), extension );
Files.write( thumbnail, thumbFile );
}
Files.write( parseBase64Binary( attachment.getValue() ), targetFile );
Files.write( BaseEncoding.base64().decode( attachment.getValue() ), targetFile );
} else {
Files.write( attachment.getValue(), targetFile, Charsets.UTF_8 );
}
Expand All @@ -143,7 +144,7 @@ private File writeFile( AttachmentModel attachment, MediaType mediaType ) {
}

private byte[] compressToThumbnail( String base64content, String extension ) {
byte[] imageBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary( base64content );
byte[] imageBytes = BaseEncoding.base64().decode( base64content );
double scaleFactor = 0.02;
byte[] base64thumb = {};
try {
Expand Down
@@ -1,8 +1,25 @@
package com.tngtech.jgiven.report.html5;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Charsets;
import com.google.common.base.Throwables;
import com.google.common.collect.Lists;
import com.google.common.io.BaseEncoding;
import com.google.common.io.Files;
import com.google.gson.Gson;
import com.tngtech.jgiven.exception.JGivenInstallationException;
Expand All @@ -11,21 +28,11 @@
import com.tngtech.jgiven.report.AbstractReportConfig;
import com.tngtech.jgiven.report.AbstractReportGenerator;
import com.tngtech.jgiven.report.ReportGenerator;
import com.tngtech.jgiven.report.config.CommandLineOptionBuilder;
import com.tngtech.jgiven.report.config.ConfigOption;
import com.tngtech.jgiven.report.config.ConfigOptionBuilder;
import com.tngtech.jgiven.report.config.converter.ToBoolean;
import com.tngtech.jgiven.report.config.converter.ToFile;
import com.tngtech.jgiven.report.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.xml.bind.DatatypeConverter;
import java.io.*;
import java.util.*;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import com.tngtech.jgiven.report.model.ReportModel;
import com.tngtech.jgiven.report.model.ReportModelFile;
import com.tngtech.jgiven.report.model.ScenarioCaseModel;
import com.tngtech.jgiven.report.model.ScenarioModel;
import com.tngtech.jgiven.report.model.StepModel;

public class Html5ReportGenerator extends AbstractReportGenerator {
private static final Logger log = LoggerFactory.getLogger( ReportGenerator.class );
Expand Down Expand Up @@ -154,7 +161,7 @@ private void closeWriter() throws IOException {
contentStream.append( "]}" );
contentStream.flush();
ResourceUtil.close( contentStream );
String base64String = DatatypeConverter.printBase64Binary( byteStream.toByteArray() );
String base64String = BaseEncoding.base64().encode( byteStream.toByteArray() );
this.fileStream.append( "'" + base64String + "'" );
this.fileStream.append( ");" );
fileStream.flush();
Expand Down
Expand Up @@ -2,21 +2,16 @@

import static org.assertj.core.api.Assertions.assertThat;

import com.tngtech.jgiven.attachment.Attachment;
import com.tngtech.jgiven.attachment.MediaType;
import com.tngtech.jgiven.report.model.*;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

import javax.xml.bind.DatatypeConverter;
import java.io.File;
import java.io.IOException;
import com.google.common.io.BaseEncoding;

public class Html5AttachmentGeneratorTest {

private static final String JSON_SAMPLE = "{}";
private static final byte[] BINARY_SAMPLE = DatatypeConverter.parseHexBinary( "89504E470D0A1A0A" );
private static final byte[] BINARY_SAMPLE = BaseEncoding.base64().decode( "89504E470D0A1A0A" );

@Rule
public final TemporaryFolder temporaryFolderRule = new TemporaryFolder();
Expand Down
2 changes: 2 additions & 0 deletions jgiven-java9-tests/README.md
@@ -0,0 +1,2 @@
This subproject contains tests that make use of Java 9 features.
This project is only built when using Java 9.
11 changes: 11 additions & 0 deletions jgiven-java9-tests/build.gradle
@@ -0,0 +1,11 @@

dependencies {
compile project(':jgiven-core')
compile project(':jgiven-junit')
compile project(':jgiven-html5-report')
compile(group: 'junit', name: 'junit', version: junitVersion)
}

sourceCompatibility = targetCompatibility = 1.9

test.finalizedBy(jgivenHtml5Report)
@@ -0,0 +1,23 @@
package com.tngtech.jgiven.tests.java8;

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.Test;

import com.tngtech.jgiven.junit.SimpleScenarioTest;
import com.tngtech.jgiven.report.model.StepModel;

public class Java9Test extends SimpleScenarioTest<LambdaSteps<?>> {

@Test
public void lambda_steps_work() {

given().some_lambda_step( 5, 4 );

StepModel step = getScenario().getScenarioCaseModel().getFirstStep();
assertThat( step.getWord( 2 ).getArgumentInfo().getArgumentName() ).isEqualTo( "a" );
assertThat( step.getWord( 3 ).getArgumentInfo().getArgumentName() ).isEqualTo( "b" );

}

}
@@ -0,0 +1,16 @@
package com.tngtech.jgiven.tests.java8;

import com.tngtech.jgiven.Stage;
import java.util.List;

public class LambdaSteps<SELF extends LambdaSteps<SELF>> extends Stage<SELF> {

public SELF some_lambda_step( int a, int b ) {
methodTakingALambda( ( ) -> {} );
return self();
}

private void methodTakingALambda( Runnable runnable ) {
List<Integer> someList = List.of(1,2,3);
}
}
Expand Up @@ -8,14 +8,13 @@
import java.util.List;
import java.util.regex.Pattern;

import com.google.common.io.BaseEncoding;
import com.google.common.io.Files;
import com.tngtech.jgiven.Stage;
import com.tngtech.jgiven.annotation.ExpectedScenarioState;
import com.tngtech.jgiven.annotation.Quoted;
import com.tngtech.jgiven.report.model.ReportModel;

import javax.xml.bind.DatatypeConverter;

public class ThenReportGenerator<SELF extends ThenReportGenerator<?>> extends Stage<SELF> {

@ExpectedScenarioState
Expand Down Expand Up @@ -56,7 +55,7 @@ public SELF content(@Quoted String content) {
}

public SELF binary_content(@Quoted String base64content) {
assertThat(currentFile).hasBinaryContent(DatatypeConverter.parseBase64Binary(base64content));
assertThat(currentFile).hasBinaryContent(BaseEncoding.base64().decode(base64content));
return self();
}

Expand Down
Expand Up @@ -4,8 +4,7 @@
import java.io.IOException;
import java.util.regex.Matcher;

import javax.xml.bind.DatatypeConverter;

import com.google.common.io.BaseEncoding;
import com.tngtech.jgiven.annotation.*;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -32,7 +31,7 @@ public class Html5ReportGeneratorTest extends
private static final String JSON_SAMPLE = "{" +
" \"foo\": \"bar\"" +
"}";
private static final String BINARY_SAMPLE = DatatypeConverter.printBase64Binary(DatatypeConverter.parseHexBinary( "89504E470D0A1A0A" ));
private static final String BINARY_SAMPLE = BaseEncoding.base64().encode(BaseEncoding.base32Hex().decode( "89504E470D0A1A0A" ));

@ScenarioStage
GivenJsonReports<?> jsonReports;
Expand Down
4 changes: 4 additions & 0 deletions settings.gradle
Expand Up @@ -23,6 +23,10 @@ if (JavaVersion.current().isJava8Compatible() && !release) {
include ':jgiven-java8-tests'
}

if (JavaVersion.current().isJava9Compatible() && !release) {
include ':jgiven-java9-tests'
}

if (JavaVersion.current().isJava8Compatible()) {
include ':jgiven-junit5'
}
Expand Down

0 comments on commit da88262

Please sign in to comment.