2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.bundle.test;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
13 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
15 import java.util.ArrayList;
16 import java.util.List;
17 import javax.inject.Inject;
18 import org.junit.Test;
19 import org.junit.runner.RunWith;
20 import org.ops4j.pax.exam.Configuration;
21 import org.ops4j.pax.exam.Option;
22 import org.ops4j.pax.exam.junit.PaxExam;
23 import org.osgi.framework.Bundle;
24 import org.osgi.framework.BundleContext;
25 import org.osgi.framework.BundleException;
27 @RunWith(PaxExam.class)
28 public class BundleStartTest {
29 private static final String GROUP = "org.opendaylight.yangtools";
34 private List<Option> coreBundles() {
35 List<Option> options = new ArrayList<>();
37 options.add(mavenBundle("org.slf4j", "slf4j-api").versionAsInProject());
38 options.add(mavenBundle("ch.qos.logback", "logback-core").versionAsInProject());
39 options.add(mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject());
40 options.add(mavenBundle("com.google.guava", "guava").versionAsInProject());
41 options.add(mavenBundle("commons-io", "commons-io").versionAsInProject());
42 options.add(mavenBundle("org.apache.commons", "commons-lang3").versionAsInProject());
43 options.add(mavenBundle("org.opendaylight.yangtools.thirdparty", "antlr4-runtime-osgi-nohead")
44 .versionAsInProject());
45 options.add(mavenBundle("org.opendaylight.yangtools.thirdparty", "xtend-lib-osgi").versionAsInProject());
46 options.add(mavenBundle("org.javassist", "javassist").versionAsInProject());
48 options.add(mavenBundle(GROUP, "concepts").versionAsInProject());
49 options.add(mavenBundle(GROUP, "util").versionAsInProject());
50 options.add(mavenBundle(GROUP, "object-cache-api").versionAsInProject());
51 options.add(mavenBundle(GROUP, "yang-binding").versionAsInProject());
52 options.add(mavenBundle(GROUP, "yang-common").versionAsInProject());
53 options.add(mavenBundle(GROUP, "yang-data-api").versionAsInProject());
54 options.add(mavenBundle(GROUP, "yang-data-impl").versionAsInProject());
55 options.add(mavenBundle(GROUP, "yang-data-util").versionAsInProject());
56 options.add(mavenBundle(GROUP, "yang-model-api").versionAsInProject());
57 options.add(mavenBundle(GROUP, "yang-model-util").versionAsInProject());
58 options.add(mavenBundle(GROUP, "yang-parser-api").versionAsInProject());
59 options.add(mavenBundle(GROUP, "yang-parser-impl").versionAsInProject());
61 options.add(mavenBundle(GROUP, "binding-generator-api").versionAsInProject());
62 options.add(mavenBundle(GROUP, "binding-generator-impl").versionAsInProject());
63 options.add(mavenBundle(GROUP, "binding-generator-spi").versionAsInProject());
64 options.add(mavenBundle(GROUP, "binding-generator-util").versionAsInProject());
65 options.add(mavenBundle(GROUP, "binding-model-api").versionAsInProject());
66 options.add(mavenBundle(GROUP, "binding-type-provider").versionAsInProject());
68 options.add(junitBundles());
73 public final Option[] config() {
74 final List<Option> options = coreBundles();
75 return options.toArray(new Option[0]);
79 public void testBundleActivation() throws BundleException {
80 testBundle("yang-binding");
81 testBundle("yang-common");
82 testBundle("yang-data-api");
83 testBundle("yang-data-impl");
84 testBundle("yang-data-util");
85 testBundle("yang-model-api");
86 testBundle("yang-model-util");
87 testBundle("yang-parser-api");
88 testBundle("yang-parser-impl");
90 testBundle("binding-generator-api");
91 testBundle("binding-generator-impl");
92 testBundle("binding-generator-spi");
93 testBundle("binding-generator-util");
94 testBundle("binding-model-api");
95 testBundle("binding-type-provider");
98 private void testBundle(String name) throws BundleException {
99 Bundle bundle = getBundle(name);
100 assertNotNull("Bundle '" + name + "' not found", bundle);
101 assertEquals("Bundle '" + name + "' is not in ACTIVE state", Bundle.ACTIVE, bundle.getState());
104 private Bundle getBundle(final String name) {
105 final String bn = GROUP + "." + name;
106 for (Bundle b : ctx.getBundles()) {
107 if (bn.equals(b.getSymbolicName())) {