#32 Making build work on JDK 6

This commit is contained in:
Gunnar Morling 2013-06-26 20:15:31 +02:00
parent 17ffcfe104
commit 9a4e51801f
6 changed files with 35 additions and 12 deletions

View File

@ -44,11 +44,11 @@ public class ErronuousCollectionMappingTest extends MapperTestBase {
@Diagnostic(type = ErronuousMapper.class,
kind = Kind.ERROR,
line = 28,
messageRegExp = ".*Can't generate mapping method from iterable type to non-iterable type\\."),
messageRegExp = "Can't generate mapping method from iterable type to non-iterable type\\."),
@Diagnostic(type = ErronuousMapper.class,
kind = Kind.ERROR,
line = 30,
messageRegExp = ".*Can't generate mapping method from non-iterable type to iterable type\\.")
messageRegExp = "Can't generate mapping method from non-iterable type to iterable type\\.")
}
)
public void shouldFailToGenerateMappingFromListToString() {

View File

@ -44,7 +44,7 @@ public class ErroneousMappingsTest extends MapperTestBase {
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.ERROR,
line = 27,
messageRegExp = ".*Unknown property \"bar\" in return type.*"),
messageRegExp = "Unknown property \"bar\" in return type"),
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.WARNING,
line = 28,
@ -52,7 +52,7 @@ public class ErroneousMappingsTest extends MapperTestBase {
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.ERROR,
line = 30,
messageRegExp = ".*Unknown property \"bar\" in parameter type.*")
messageRegExp = "Unknown property \"bar\" in parameter type")
}
)
public void shouldFailToGenerateMappings() {

View File

@ -44,19 +44,19 @@ public class ErroneousMappingsTest extends MapperTestBase {
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.ERROR,
line = 26,
messageRegExp = ".*Can't map property \"boolean foo\" to \"int foo\"\\."),
messageRegExp = "Can't map property \"boolean foo\" to \"int foo\"\\."),
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.ERROR,
line = 28,
messageRegExp = ".*Can't map property \"int foo\" to \"boolean foo\"\\."),
messageRegExp = "Can't map property \"int foo\" to \"boolean foo\"\\."),
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.ERROR,
line = 30,
messageRegExp = ".*Can't generate mapping method with primitive return type\\."),
messageRegExp = "Can't generate mapping method with primitive return type\\."),
@Diagnostic(type = ErroneousMapper.class,
kind = Kind.ERROR,
line = 32,
messageRegExp = ".*Can't generate mapping method with primitive parameter type\\.")
messageRegExp = "Can't generate mapping method with primitive parameter type\\.")
}
)
public void shouldFailToGenerateMappings() {

View File

@ -164,12 +164,12 @@ public abstract class MapperTestBase {
assertThat( actual.getKind() ).isEqualTo( expected.getKind() );
assertThat( actual.getMessage() ).describedAs(
String.format(
"%s:%s %s",
"Unexpected message for diagnostic %s:%s %s",
actual.getSourceFileName(),
actual.getLine(),
actual.getKind()
)
).matches( expected.getMessage() );
).matches( ".*" + expected.getMessage() + ".*" );
}
assertThat( expectedIterator.hasNext() ).describedAs(

View File

@ -50,8 +50,11 @@ public @interface Diagnostic {
/**
* A regular expression matching the expected message of the diagnostic.
* Wild-cards matching any character (".*") will be added to the beginning
* and end of the given expression when applying it.
*
* @return A regular expression matching the expected message of the diagnostic.
* @return A regular expression matching the expected message of the
* diagnostic.
*/
String messageRegExp() default ".*";
}

View File

@ -20,6 +20,8 @@ package org.mapstruct.ap.testutil.compilation.model;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.tools.Diagnostic.Kind;
import javax.tools.JavaFileObject;
@ -69,8 +71,10 @@ public class DiagnosticDescriptor {
return null;
}
URI uri = getUri( diagnostic );
try {
String sourceName = new File( diagnostic.getSource().toUri() ).getCanonicalPath();
String sourceName = new File( uri ).getCanonicalPath();
return sourceName.length() > sourceDir.length() ?
sourceName.substring( sourceDir.length() + 1 ) :
sourceName;
@ -80,6 +84,22 @@ public class DiagnosticDescriptor {
}
}
private static URI getUri(javax.tools.Diagnostic<? extends JavaFileObject> diagnostic) {
URI uri = diagnostic.getSource().toUri();
if ( uri.isAbsolute() ) {
return uri;
}
//Make the URI absolute in case it isn't (the case with JDK 6)
try {
return new URI( "file:" + uri.toString() );
}
catch ( URISyntaxException e ) {
throw new RuntimeException( e );
}
}
public String getSourceFileName() {
return sourceFileName;
}