| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 IBM Corporation and others. |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // which accompanies this distribution, and is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // Contributors: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.library.tests.exportimport; |
| |
| import java.io.File; |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| import junit.framework.TestCase; |
| |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.epf.library.LibraryPlugin; |
| import org.eclipse.epf.library.LibraryService; |
| import org.eclipse.epf.library.configuration.ConfigurationHelper; |
| import org.eclipse.epf.library.tester.LibraryTestService; |
| import org.eclipse.epf.services.Services; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.epf.uma.MethodElement; |
| import org.eclipse.epf.uma.MethodLibrary; |
| import org.eclipse.epf.uma.MethodPlugin; |
| |
| /** |
| * JUnit tests for thread test |
| * |
| * @author Weiping Lu |
| * @since 1.5 |
| * |
| */ |
| public class StandAloneThreadTest extends TestCase { |
| |
| private LibraryTestService service = LibraryTestService.getInstance(); |
| |
| public StandAloneThreadTest() { |
| } |
| |
| public void test0001() { |
| |
| LibraryPlugin p = LibraryPlugin.getDefault(); |
| String libPath = "C:\\Documents and Settings\\wlu\\RMC\\Method Libraries\\lib.7.5.rup"; |
| |
| MethodLibrary lib = null; |
| try { |
| lib = LibraryService.getInstance().openMethodLibrary( |
| Services.XMI_PERSISTENCE_TYPE, new File(libPath).toURI()); |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| MethodConfiguration config = lib.getPredefinedConfigurations().get(5); |
| System.out.println("LD> config: " + config.getName() + ", " + Thread.currentThread()); |
| System.out.println(""); |
| |
| List<Thread> threadList = new ArrayList<Thread>(); |
| for (MethodPlugin plugin : lib.getMethodPlugins()) { |
| PluginJob job = new PluginJob(plugin, config); |
| Thread th = new Thread(job); |
| th.start(); |
| threadList.add(th); |
| } |
| for (Thread th : threadList) { |
| try { |
| th.join(); |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| } |
| |
| } |
| |
| static class PluginJob implements Runnable { |
| |
| private MethodPlugin plugin; |
| MethodConfiguration config; |
| public PluginJob(MethodPlugin plugin, MethodConfiguration config) { |
| this.plugin = plugin; |
| this.config = config; |
| } |
| |
| public void run() { |
| System.out.println("LD> plugin: " + plugin.getName() + ", " + Thread.currentThread()); |
| System.out.println(""); |
| |
| for (Iterator<EObject> iter = plugin.eAllContents(); iter.hasNext();) { |
| try { |
| EObject obj = (EObject) iter.next(); |
| if (obj instanceof MethodElement) { |
| MethodElement element = (MethodElement) obj; |
| boolean b = ConfigurationHelper.inConfig(element, |
| config); |
| // System.out |
| // .println("LD> " + b + ", element: " + element); |
| } |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| } |
| } |
| |
| } |
| |
| } |