Skip to content

Commit

Permalink
#328 rename annotations. remove local caching of url
Browse files Browse the repository at this point in the history
  • Loading branch information
arnaudroger committed Jul 19, 2016
1 parent ba092ee commit bcebe21
Show file tree
Hide file tree
Showing 14 changed files with 48 additions and 116 deletions.
@@ -0,0 +1,8 @@
package org.mockito.configuration;

public class MockitoConfiguration extends DefaultMockitoConfiguration {
@Override
public boolean enableClassCache() {
return false;
}
}
9 changes: 3 additions & 6 deletions sfm-datastax/src/test/java/org/sfm/datastax/DataTypeTest.java
Expand Up @@ -8,17 +8,14 @@
import org.mockito.Mock;
import org.sfm.datastax.impl.RowGetterFactory;
import org.sfm.datastax.impl.SettableDataSetterFactory;
import org.sfm.datastax.impl.SettableDataSetterFactoryTest;
import org.sfm.datastax.utils.RecorderInvocationHandler;
import org.sfm.map.MapperConfig;
import org.sfm.map.column.ColumnProperty;
import org.sfm.map.column.FieldMapperColumnDefinition;
import org.sfm.map.mapper.ColumnDefinition;
import org.sfm.map.mapper.PropertyMapping;
import org.sfm.reflect.Getter;
import org.sfm.reflect.ReflectionService;
import org.sfm.reflect.Setter;
import org.sfm.reflect.meta.ObjectClassMeta;
import org.sfm.reflect.meta.PropertyMeta;
import org.sfm.reflect.primitive.ByteGetter;
import org.sfm.reflect.primitive.ByteSetter;
Expand All @@ -32,7 +29,7 @@
import org.sfm.reflect.primitive.LongSetter;
import org.sfm.reflect.primitive.ShortGetter;
import org.sfm.reflect.primitive.ShortSetter;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.lang.reflect.InvocationTargetException;
Expand All @@ -50,8 +47,8 @@
import static org.mockito.Mockito.when;

@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -6,12 +6,11 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sfm.datastax.impl.RowGetterFactory;
import org.sfm.datastax.utils.RecorderInvocationHandler;
import org.sfm.reflect.Getter;
import org.sfm.reflect.ReflectionService;
import org.sfm.reflect.Setter;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.io.IOException;
Expand All @@ -22,7 +21,7 @@
import static org.junit.Assert.assertNotNull;

@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(libraryGroups = {"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar"},
@LibrarySets(librarySets = {"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar"},
includes={ReflectionService.class, DatastaxCrud.class, DatastaxCrudTest.class})
public class Datastax3Test {

Expand Down
Expand Up @@ -7,7 +7,7 @@
import org.sfm.beans.DbObject;
import org.sfm.datastax.beans.DbObjectWithAlias;
import org.sfm.reflect.ReflectionService;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import static org.junit.Assert.assertEquals;
Expand All @@ -16,8 +16,8 @@


@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -7,7 +7,7 @@
import org.sfm.datastax.beans.*;
import org.sfm.reflect.ReflectionService;
import org.sfm.tuples.Tuple2;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.util.Arrays;
Expand All @@ -17,8 +17,8 @@
import static org.junit.Assert.*;

@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -7,7 +7,7 @@
import org.sfm.beans.DbObject;
import org.sfm.beans.TestAffinityObject;
import org.sfm.reflect.ReflectionService;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.text.SimpleDateFormat;
Expand All @@ -17,8 +17,8 @@


@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -7,7 +7,7 @@
import org.sfm.datastax.beans.*;
import org.sfm.reflect.ReflectionService;
import org.sfm.tuples.Tuple3;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.util.Iterator;
Expand All @@ -17,8 +17,8 @@


@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -4,13 +4,10 @@
import com.datastax.driver.core.Session;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sfm.datastax.beans.DbObjectsWithTuple;
import org.sfm.datastax.beans.DbObjectsWithTupleValue;
import org.sfm.datastax.beans.DbObjectsWithUDT;
import org.sfm.datastax.beans.DbObjectsWithUDTTupleList;
import org.sfm.reflect.ReflectionService;
import org.sfm.tuples.Tuple3;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.util.Arrays;
Expand All @@ -21,8 +18,8 @@


@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -5,7 +5,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sfm.reflect.ReflectionService;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.math.BigDecimal;
Expand All @@ -14,8 +14,8 @@
import static org.junit.Assert.assertEquals;

@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
Expand Up @@ -7,25 +7,20 @@
import org.junit.runner.RunWith;
import org.sfm.beans.DbObject;
import org.sfm.datastax.beans.DbObjectsWithTuple;
import org.sfm.map.Mapper;
import org.sfm.reflect.ReflectionService;
import org.sfm.reflect.TypeReference;
import org.sfm.tuples.Tuple3;
import org.sfm.utils.LibrarySet;
import org.sfm.utils.LibrarySets;
import org.sfm.utils.MultiClassLoaderJunitRunner;

import java.lang.reflect.Type;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;


@RunWith(MultiClassLoaderJunitRunner.class)
@LibrarySet(
libraryGroups = {
@LibrarySets(
librarySets = {
//IFJAVA8_START
"http://repo1.maven.org/maven2/com/datastax/cassandra/cassandra-driver-core/3.0.3/cassandra-driver-core-3.0.3.jar",
//IFJAVA8_END
Expand Down
49 changes: 0 additions & 49 deletions sfm-test/src/main/java/org/sfm/utils/LibraryClassLoaderUtil.java

This file was deleted.

Expand Up @@ -8,11 +8,12 @@

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface LibrarySet {
String[] libraryGroups();
Class<?>[] includes();
public @interface LibrarySets {
String[] librarySets();

Class<?>[] includes();
String[] excludes() default {"org.junit"};

String[] names() default {};

}
@@ -1,6 +1,5 @@
package org.sfm.utils;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
Expand All @@ -9,12 +8,12 @@
import java.util.List;
import java.util.regex.Pattern;

public class LibrarySetClassLoader extends URLClassLoader {
public class LibrarySetsClassLoader extends URLClassLoader {
private final ClassLoader classLoader;
private final String[] libraries;
private final Pattern[] excludes;

public LibrarySetClassLoader(ClassLoader classLoader, String[] libraries, Class<?>[] includes, Pattern[] excludes) throws IOException {
public LibrarySetsClassLoader(ClassLoader classLoader, String[] libraries, Class<?>[] includes, Pattern[] excludes) throws IOException {
super(getUrls(libraries, includes), Integer.class.getClassLoader());
this.classLoader = classLoader;
this.libraries = libraries;
Expand All @@ -25,8 +24,7 @@ private static URL[] getUrls(String[] libraries, Class<?>[] includes) throws IOE
List<URL> urls = new ArrayList<URL>();

for(int i = 0; i < libraries.length; i++) {
File f = LibraryClassLoaderUtil.downloadIfNotThere(libraries[i]);
urls.add(f.toURI().toURL());
urls.add(new URL(libraries[i]));
}

for(Class<?> includeClass : includes) {
Expand All @@ -36,7 +34,6 @@ private static URL[] getUrls(String[] libraries, Class<?>[] includes) throws IOE
}
}

System.out.println("urls = " + urls);
return urls.toArray(new URL[0]);


Expand All @@ -46,7 +43,6 @@ private static URL findUrl(Class<?> includeClass, ClassLoader classLoader) {
if (classLoader instanceof URLClassLoader) {
for(URL url : ((URLClassLoader)classLoader).getURLs()) {
if (urlContains(url, includeClass)) {
System.out.println(includeClass + " url = " + url);
return url;
}
}
Expand Down Expand Up @@ -86,21 +82,9 @@ private boolean isExcluded(String name) {
return false;
}

@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
if (isExcluded(name)) {
return classLoader.loadClass(name);
}
try {
return super.findClass(name);
} catch (ClassNotFoundException e) {
return classLoader.loadClass(name);
}
}

@Override
public String toString() {
return "LibrarySetClassLoader{" +
return "LibrarySetsClassLoader{" +
"libraries=" + Arrays.toString(libraries) +
'}';
}
Expand Down
Expand Up @@ -17,17 +17,17 @@ public class MultiClassLoaderJunitRunner extends Suite {
public MultiClassLoaderJunitRunner(Class<?> klass) throws Throwable {
super(klass, NO_RUNNERS);

LibrarySet librarySet = klass.getAnnotation(LibrarySet.class);
if (librarySet == null) throw new IllegalArgumentException("Class " + klass + " is missing LibrarySet annotation");
LibrarySets librarySets = klass.getAnnotation(LibrarySets.class);
if (librarySets == null) throw new IllegalArgumentException("Class " + klass + " is missing LibrarySets annotation");

List<Runner> runners = new ArrayList<Runner>();
int i = 0;
String[] names = librarySet.names();
Pattern[] excludes = toPattern(librarySet.excludes());
for(final String urlsList : librarySet.libraryGroups()) {
String[] names = librarySets.names();
Pattern[] excludes = toPattern(librarySets.excludes());
for(final String urlsList : librarySets.librarySets()) {
String[] urls = urlsList.split(",");
final String suffix = getName(names, i);
ClassLoader classLoader = new LibrarySetClassLoader(getClass().getClassLoader(), urls, librarySet.includes(), excludes);
ClassLoader classLoader = new LibrarySetsClassLoader(getClass().getClassLoader(), urls, librarySets.includes(), excludes);
Class<?> testClass = classLoader.loadClass(klass.getName());
runners.add(new ClassLoaderChangerRunner(classLoader, new BlockJUnit4ClassRunner(testClass) {
@Override
Expand Down

0 comments on commit bcebe21

Please sign in to comment.