2 * Copyright (c) 2014 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.lispflowmapping.implementation.config;
10 import org.osgi.framework.Bundle;
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.FrameworkUtil;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
16 public final class ConfigIni {
17 protected static final Logger LOG = LoggerFactory.getLogger(ConfigIni.class);
18 private boolean mappingOverwrite;
20 private String elpPolicy;
22 private static final String LISP_MAPPING_OVERWRITE = "lisp.mappingOverwrite";
23 private static final String LISP_SMR = "lisp.smr";
24 private static final String LISP_ELP_POLICY = "lisp.elpPolicy";
26 private static final ConfigIni INSTANCE = new ConfigIni();
29 Bundle b = FrameworkUtil.getBundle(this.getClass());
30 BundleContext context = null;
32 context = b.getBundleContext();
35 initMappingOverwrite(context);
37 initElpPolicy(context);
40 private void initMappingOverwrite(BundleContext context) {
41 // set the default value first
42 this.mappingOverwrite = true;
46 if (context != null) {
47 str = context.getProperty(LISP_MAPPING_OVERWRITE);
51 str = System.getProperty(LISP_MAPPING_OVERWRITE);
53 LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'true'", LISP_MAPPING_OVERWRITE);
58 if (str.trim().equalsIgnoreCase("false")) {
59 this.mappingOverwrite = false;
60 LOG.debug("Setting configuration variable '{}' to 'false'", LISP_MAPPING_OVERWRITE);
62 LOG.debug("Setting configuration variable '{}' to 'true'", LISP_MAPPING_OVERWRITE);
66 private void initSmr(BundleContext context) {
67 // set the default value first
72 if (context != null) {
73 str = context.getProperty(LISP_SMR);
77 str = System.getProperty(LISP_SMR);
79 LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'true'", LISP_SMR);
84 if (str.trim().equalsIgnoreCase("false")) {
86 LOG.debug("Setting configuration variable '{}' to 'false'", LISP_SMR);
88 LOG.debug("Setting configuration variable '{}' to 'true'", LISP_SMR);
92 private void initElpPolicy(BundleContext context) {
93 // set the default value first
94 this.elpPolicy = "default";
98 if (context != null) {
99 str = context.getProperty(LISP_ELP_POLICY);
103 str = System.getProperty(LISP_ELP_POLICY);
105 LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'default' (ELP only)",
111 if (str.trim().equalsIgnoreCase("both")) {
112 this.elpPolicy = "both";
113 LOG.debug("Setting configuration variable '{}' to 'both' (keep ELP, add next hop)", LISP_ELP_POLICY);
114 } else if (str.trim().equalsIgnoreCase("replace")) {
115 this.elpPolicy = "replace";
116 LOG.debug("Setting configuration variable '{}' to 'replace' (next hop only)", LISP_ELP_POLICY);
118 LOG.debug("Setting configuration variable '{}' to 'default' (ELP only)", LISP_ELP_POLICY);
122 public boolean mappingOverwriteIsSet() {
123 return mappingOverwrite;
126 public boolean smrIsSet() {
130 public String getElpPolicy() {
134 public static ConfigIni getInstance() {