package test.uses.order; import java.io.File; import aQute.bnd.differ.DiffPluginImpl; import aQute.bnd.osgi.Builder; import aQute.bnd.osgi.Constants; import aQute.bnd.osgi.Jar; import aQute.bnd.service.diff.Delta; import aQute.bnd.service.diff.Diff; import aQute.bnd.service.diff.Tree; import junit.framework.TestCase; @SuppressWarnings("resource") public class UsesOrderingTest extends TestCase { static DiffPluginImpl differ = new DiffPluginImpl(); public static void testOrdering() throws Exception { Builder builder = new Builder(); builder.addClasspath(new File("bin")); builder.setProperty(Constants.EXPORT_PACKAGE, "test.diff;uses:=\"d,c,a,b\""); Jar a = builder.build(); String exa = (String) a.getManifest().getMainAttributes().getValue(Constants.EXPORT_PACKAGE); builder = new Builder(); builder.addClasspath(new File("bin")); builder.setProperty(Constants.EXPORT_PACKAGE, "test.diff;uses:=\"d,b,a,c\""); Jar b = builder.build(); String exb = (String) b.getManifest().getMainAttributes().getValue(Constants.EXPORT_PACKAGE); Tree newer = differ.tree(b); Tree older = differ.tree(a); Diff diff = newer.diff(older); show(diff, 0); assertEquals(Delta.UNCHANGED, diff.getDelta()); } static void show(Diff diff, int indent) { // if (diff.getDelta() == Delta.UNCHANGED || diff.getDelta() == // Delta.IGNORED) // return; for (int i = 0; i < indent; i++) System.err.print(" "); System.err.println(diff.toString()); // if (diff.getDelta().isStructural()) // return; for (Diff c : diff.getChildren()) { show(c, indent + 1); } } }