Return-Path: Delivered-To: apmail-felix-commits-archive@www.apache.org Received: (qmail 47750 invoked from network); 4 Sep 2009 23:37:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Sep 2009 23:37:45 -0000 Received: (qmail 38881 invoked by uid 500); 4 Sep 2009 23:37:45 -0000 Delivered-To: apmail-felix-commits-archive@felix.apache.org Received: (qmail 38809 invoked by uid 500); 4 Sep 2009 23:37:45 -0000 Mailing-List: contact commits-help@felix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@felix.apache.org Delivered-To: mailing list commits@felix.apache.org Received: (qmail 38800 invoked by uid 99); 4 Sep 2009 23:37:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Sep 2009 23:37:45 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Sep 2009 23:37:43 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3001B2388893; Fri, 4 Sep 2009 23:37:23 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r811571 - in /felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver: Main.java felix/FelixResolver.java Date: Fri, 04 Sep 2009 23:37:23 -0000 To: commits@felix.apache.org From: rickhall@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090904233723.3001B2388893@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rickhall Date: Fri Sep 4 23:37:22 2009 New Revision: 811571 URL: http://svn.apache.org/viewvc?rev=811571&view=rev Log: Made it easier to run different scenarios. Modified: felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/felix/FelixResolver.java Modified: felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java?rev=811571&r1=811570&r2=811571&view=diff ============================================================================== --- felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java (original) +++ felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/Main.java Fri Sep 4 23:37:22 2009 @@ -6,9 +6,9 @@ * 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 @@ -18,6 +18,8 @@ */ package org.apache.felix.resolver; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -29,21 +31,33 @@ public class Main { public static void main(String[] args) + throws NoSuchMethodException, IllegalAccessException, + IllegalArgumentException, InvocationTargetException { - List moduleList = new ArrayList(); - - Module module = scenario5(moduleList); - - Resolver resolver; - if ((args.length == 1) && (args[0].equals("-legacy"))) + if (args.length > 2) { - resolver = new FelixResolver(moduleList); + System.out.println("[-legacy] [scenario-number]"); + System.exit(0); } - else + + List moduleList = new ArrayList(); + String scenario = "1"; + + Resolver resolver = new ProtoResolver(moduleList); + for (int i = 0; i < args.length; i++) { - resolver = new ProtoResolver(moduleList); + if (args[i].equals("-legacy")) + { + resolver = new FelixResolver(moduleList); + } + else + { + scenario = args[i]; + } } + Module module = setupScenario(moduleList, scenario); + try { long starttime = System.currentTimeMillis(); @@ -71,6 +85,17 @@ } } + private static Module setupScenario(List moduleList, String scenario) + throws NoSuchMethodException, IllegalAccessException, + IllegalArgumentException, InvocationTargetException + { + int i = Integer.parseInt(scenario); + String methodName = "scenario" + i; + System.out.println(methodName + ":\n"); + Method method = Main.class.getDeclaredMethod(methodName, new Class[] { List.class }); + return (Module) method.invoke(null, moduleList); + } + // SOLUTION: // A: bar->B, baz->E // B: woz->D Modified: felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/felix/FelixResolver.java URL: http://svn.apache.org/viewvc/felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/felix/FelixResolver.java?rev=811571&r1=811570&r2=811571&view=diff ============================================================================== --- felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/felix/FelixResolver.java (original) +++ felix/sandbox/rickhall/resolver/src/main/java/org/apache/felix/resolver/felix/FelixResolver.java Fri Sep 4 23:37:22 2009 @@ -33,23 +33,21 @@ public class FelixResolver implements Resolver { private final List m_moduleList; - private final Module[] m_modules; private final FelixResolverImpl m_resolver = new FelixResolverImpl(); private final ResolverStateImpl m_state = new ResolverStateImpl(); public FelixResolver(List moduleList) { m_moduleList = moduleList; - m_modules = (Module[]) moduleList.toArray(new Module[moduleList.size()]); } public Module getModule(String name) { - for (int i = 0; i < m_modules.length; i++) + for (int i = 0; i < m_moduleList.size(); i++) { - if (m_modules[i].getName().equals(name)) + if (m_moduleList.get(i).getName().equals(name)) { - return m_modules[i]; + return m_moduleList.get(i); } } return null; @@ -74,7 +72,7 @@ { public Module[] getModules() { - return m_modules; + return (Module[]) m_moduleList.toArray(new Module[m_moduleList.size()]); } public PackageSource[] getResolvedCandidates(ImportedPackage req) @@ -85,14 +83,14 @@ public PackageSource[] getUnresolvedCandidates(ImportedPackage req) { List ps = new ArrayList(); - for (int modIdx = 0; modIdx < m_modules.length; modIdx++) + for (int modIdx = 0; modIdx < m_moduleList.size(); modIdx++) { - List exports = m_modules[modIdx].getExports(); + List exports = m_moduleList.get(modIdx).getExports(); for (int expIdx = 0; expIdx < exports.size(); expIdx++) { if (req.isSatistfiedBy(exports.get(expIdx))) { - ps.add(new PackageSource(m_modules[modIdx], exports.get(expIdx))); + ps.add(new PackageSource(m_moduleList.get(modIdx), exports.get(expIdx))); } } }