FELIX-3299: fix unstable test on Java5

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1243078 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/src/test/java/org/apache/felix/bundleplugin/ArtifactStubFactory.java b/bundleplugin/src/test/java/org/apache/felix/bundleplugin/ArtifactStubFactory.java
new file mode 100644
index 0000000..688acc6
--- /dev/null
+++ b/bundleplugin/src/test/java/org/apache/felix/bundleplugin/ArtifactStubFactory.java
@@ -0,0 +1,76 @@
+package org.apache.felix.bundleplugin;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * Fixed version of class that uses stable set ordering for reliable testing.
+ */
+@SuppressWarnings( { "rawtypes", "unchecked" } )
+class ArtifactStubFactory extends org.apache.maven.plugin.testing.ArtifactStubFactory
+{
+
+    public ArtifactStubFactory( File workingDir, boolean createFiles )
+    {
+        super( workingDir, createFiles );
+    }
+
+    @Override
+    public Set getClassifiedArtifacts() throws IOException
+    {
+        Set set = new LinkedHashSet();
+        set.add( createArtifact( "g", "a", "1.0", Artifact.SCOPE_COMPILE, "jar", "one" ) );
+        set.add( createArtifact( "g", "b", "1.0", Artifact.SCOPE_COMPILE, "jar", "two" ) );
+        set.add( createArtifact( "g", "c", "1.0", Artifact.SCOPE_COMPILE, "jar", "three" ) );
+        set.add( createArtifact( "g", "d", "1.0", Artifact.SCOPE_COMPILE, "jar", "four" ) );
+        return set;
+    }
+
+    @Override
+    public Set getScopedArtifacts() throws IOException
+    {
+        Set set = new LinkedHashSet();
+        set.add( createArtifact( "g", "compile", "1.0", Artifact.SCOPE_COMPILE ) );
+        set.add( createArtifact( "g", "provided", "1.0", Artifact.SCOPE_PROVIDED ) );
+        set.add( createArtifact( "g", "test", "1.0", Artifact.SCOPE_TEST ) );
+        set.add( createArtifact( "g", "runtime", "1.0", Artifact.SCOPE_RUNTIME ) );
+        set.add( createArtifact( "g", "system", "1.0", Artifact.SCOPE_SYSTEM ) );
+        return set;
+    }
+
+    @Override
+    public Set getTypedArtifacts() throws IOException
+    {
+        Set set = new LinkedHashSet();
+        set.add( createArtifact( "g", "a", "1.0", Artifact.SCOPE_COMPILE, "war", null ) );
+        set.add( createArtifact( "g", "b", "1.0", Artifact.SCOPE_COMPILE, "jar", null ) );
+        set.add( createArtifact( "g", "c", "1.0", Artifact.SCOPE_COMPILE, "sources", null ) );
+        set.add( createArtifact( "g", "d", "1.0", Artifact.SCOPE_COMPILE, "zip", null ) );
+        set.add( createArtifact( "g", "e", "1.0", Artifact.SCOPE_COMPILE, "rar", null ) );
+        return set;
+    }
+
+}
diff --git a/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java b/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java
index 44c7f97..5aad008 100644
--- a/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java
+++ b/bundleplugin/src/test/java/org/apache/felix/bundleplugin/BundlePluginTest.java
@@ -32,7 +32,6 @@
 import java.util.jar.Manifest;
 
 import org.apache.maven.model.Organization;
-import org.apache.maven.plugin.testing.ArtifactStubFactory;
 import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
@@ -268,11 +267,11 @@
         Manifest manifest = builder.getJar().getManifest();
 
         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-        assertEquals( ".," + "e-1.0.rar," + "a-1.0.war," + "d-1.0.zip", bcp );
+        assertEquals( ".," + "a-1.0.war," + "d-1.0.zip," + "e-1.0.rar", bcp );
 
         String eas = manifest.getMainAttributes().getValue( "Embedded-Artifacts" );
-        assertEquals( "e-1.0.rar;g=\"g\";a=\"e\";v=\"1.0\"," + "a-1.0.war;g=\"g\";a=\"a\";v=\"1.0\","
-            + "d-1.0.zip;g=\"g\";a=\"d\";v=\"1.0\"", eas );
+        assertEquals( "a-1.0.war;g=\"g\";a=\"a\";v=\"1.0\"," + "d-1.0.zip;g=\"g\";a=\"d\";v=\"1.0\","
+            + "e-1.0.rar;g=\"g\";a=\"e\";v=\"1.0\"", eas );
     }
 
 
@@ -360,11 +359,11 @@
         Manifest manifest2 = builder2.getJar().getManifest();
 
         String bcp1 = manifest1.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-        assertEquals( ".," + "test-1.0.jar," + "provided-1.0.jar," + "runtime-1.0.jar," + "system-1.0.jar", bcp1 );
+        assertEquals( ".," + "provided-1.0.jar," + "test-1.0.jar," + "runtime-1.0.jar," + "system-1.0.jar", bcp1 );
 
         String eas1 = manifest1.getMainAttributes().getValue( "Embedded-Artifacts" );
-        assertEquals( "test-1.0.jar;g=\"g\";a=\"test\";v=\"1.0\","
-            + "provided-1.0.jar;g=\"g\";a=\"provided\";v=\"1.0\"," + "runtime-1.0.jar;g=\"g\";a=\"runtime\";v=\"1.0\","
+        assertEquals( "provided-1.0.jar;g=\"g\";a=\"provided\";v=\"1.0\","
+            + "test-1.0.jar;g=\"g\";a=\"test\";v=\"1.0\"," + "runtime-1.0.jar;g=\"g\";a=\"runtime\";v=\"1.0\","
             + "system-1.0.jar;g=\"g\";a=\"system\";v=\"1.0\"", eas1 );
 
         String bcp2 = manifest2.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );