--- /dev/null
+<?xml version="1.0"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <version>1.4-M3-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>archiva-testutil</artifactId>
+ <name>Archiva :: Test Utility</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
--- /dev/null
+package org.apache.archiva.test;
+
+/*
+ * Copyright 2012 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+
+import java.util.List;
+
+/**
+ * @author Eric
+ */
+public class ArchivaBlockJUnit4ClassRunner
+ extends BlockJUnit4ClassRunner
+{
+
+ public ArchivaBlockJUnit4ClassRunner( Class<?> klass )
+ throws InitializationError
+ {
+ super( klass );
+ }
+
+ @Override
+ protected List<FrameworkMethod> computeTestMethods()
+ {
+ return ListGenerator.getShuffleList( super.computeTestMethods() );
+ }
+}
--- /dev/null
+package org.apache.archiva.test;
+
+/*
+ * Copyright 2012 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import java.util.List;
+
+/**
+ * @author Eric
+ */
+public class ArchivaSpringJUnit4ClassRunner
+ extends SpringJUnit4ClassRunner
+{
+
+ public ArchivaSpringJUnit4ClassRunner( Class<?> clazz )
+ throws InitializationError
+ {
+ super( clazz );
+ }
+
+ @Override
+ protected List<FrameworkMethod> computeTestMethods()
+ {
+ return ListGenerator.getShuffleList( super.computeTestMethods() );
+ }
+
+
+}
--- /dev/null
+package org.apache.archiva.test;
+
+/*
+ * Copyright 2012 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.junit.runners.model.FrameworkMethod;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+/**
+ * @author Eric
+ */
+public class ListGenerator
+{
+ private static int MAXROUND = 1;
+
+ private ListGenerator()
+ {
+ }
+
+ static List<FrameworkMethod> getShuffleList( List<FrameworkMethod> computeTestMethods )
+ {
+ String javaSpecVersion = System.getProperty( "java.specification.version" );
+ // 1.6 1.5 version not shuffled to allow build
+ if ( javaSpecVersion.equals( "1.6" ) || javaSpecVersion.equals( "1.5" ) )
+ {
+ return computeTestMethods;
+ }
+ if ( computeTestMethods == null )
+ {
+ return null;
+ }
+ List<FrameworkMethod> generated = new ArrayList<FrameworkMethod>( computeTestMethods );
+
+ Collections.sort( generated, new FrameworkMethodComparator() );
+
+ // 1.7 and more generated shuffled list
+ // double test method to have more change of failure
+ /*for ( int i = 0; i < MAXROUND; i++ )
+ {
+ Collections.shuffle( computeTestMethods );
+ generated.addAll( computeTestMethods );
+ }*/
+ //generated.add( computeTestMethods.get( 0 ) );
+
+ //Collections.shuffle( computeTestMethods );
+ //generated.addAll( computeTestMethods );
+
+ return generated;
+ }
+
+ private static class FrameworkMethodComparator
+ implements Comparator<FrameworkMethod>
+ {
+ public int compare( FrameworkMethod frameworkMethod, FrameworkMethod frameworkMethod1 )
+ {
+ return frameworkMethod.getName().compareTo( frameworkMethod1.getName() );
+ }
+ }
+
+}