Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package net.osgiliath.helpers.deltaspike.configadmin.internal;
  
  /*
   * #%L
   * net.osgiliath.helper.camel.cdi.configadmin
   * %%
   * Copyright (C) 2013 - 2014 Osgiliath
   * %%
   * Licensed 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 KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * #L%
  */
 
 import java.util.List;
 import java.util.Map;
 
 
 

Author(s):
charliemordant Service tracker for camel cdi config admin properties resolution
 
 public class ConfigAdminTracker implements
Properties
 
 	private Collection<ConfigurationAdminadmins = new HashSet<>();
 		return ;
 	}

Singleton of the tracker
 
 	private static ConfigAdminTracker instance = null;
Bundle context
 
 	private BundleContext context;
 	private ServiceTracker tracker;

Returns:
the singleton instance
 
 	public static synchronized ConfigAdminTracker getInstance(
 			BundleContext context) {
 		if ( == null) {
 
 			if (context == null) {
 				. = FrameworkUtil.getBundle(
 						DeltaSpike.class)
 			} else {
 				. = context;
 			}
 					ConfigAdminTracker.getInstance(.));
 
 		}
 		return ;
 	}
	public static synchronized void stop() {
	}
	private void parseInitialContribution(BundleContext bundleContext) {
		try {
			final ServiceReference<?>[] admins =  (ServiceReference<?>[]) 
			for ( ServiceReference<?> adminRef : admins ) {
				ConfigAdminTracker.getInstance(bundleContext).getAdmins().add((ConfigurationAdmin
						.getService(adminRef));
			}
catch (InvalidSyntaxException e) {
			log.error("Error getting servicereferences of config admin"e);
		}
	}
Adds config
	public final Object addingService(final ServiceReference reference) {
				.getService(reference);
		getInstance(null)..add(admin);
		return admin;
	}

Modified a config
	public final void modifiedService(
			final ServiceReference<ConfigurationAdminreferenceObject service) {
		removedService(referenceservice);
		addingService(reference);
	}

removed config
	public final void removedService(
			ServiceReference<ConfigurationAdminreferencefinal Object service) {
		final ConfigurationAdmin admin = .getService(reference);
	}

Get the property with the according key

Parameters:
key the propertuy key
Returns:
the corresponding property
Throws:
java.io.IOException read error
org.osgi.framework.InvalidSyntaxException wrong key
	public String getProperty(String keythrows IOException,
		log.info("Retreiving property key: " + key);
		for (ConfigurationAdmin admin : getInstance(null).) {
			final Configuration[] configurations = admin
			if (configurations != null) {
				for (final Configuration configuration : configurations) {
					log.debug("parsing configuration: "
configuration.getPid());
					final Dictionary<StringObjectdictionary = configuration
					final Object valObject = dictionary.get(key);
					if (valObject != null && valObject instanceof String) {
						log.trace("got value: " + valObject);
						return (StringvalObject;
					}
				}
			}
		}
		return null;
	}
	public Map<StringStringgetProperties() {
		Map<StringStringret = Maps.newHashMap();
		try {
			for (ConfigurationAdmin admin : getInstance(null).) {
				final Configuration[] configurations = admin
				if (configurations != null) {
					for (final Configuration configuration : configurations) {
						log.debug("parsing configuration: "
configuration.getPid());
						final Dictionary<StringObjectdictionary = configuration
						Enumeration<Stringkeys = dictionary.keys();
						while (keys.hasMoreElements()) {
							String key = keys.nextElement();
							Object val = dictionary.get(key);
							if (val instanceof String) {
								ret.put(key, (Stringval);
							}
						}
					}
				}
			}
catch (Exception e) {
			log.error("Error retreiving configadmin property"e);
		}
		return ret;
	}
		List<ConfigSourceret = Lists.newArrayList();
		for (ConfigurationAdmin admin : getInstance(null).) {
			Configuration[] configurations;
			try {
				configurations = admin
				if (configurations != null) {
					for (final Configuration configuration : configurations) {
						ret.add(new ConfigSource() {
							public boolean isScannable() {
								return true;
							}
							public String getPropertyValue(String key) {
								final Dictionary<StringObjectdictionary = configuration
								final Object valObject = dictionary.get(key);
								if (valObject != null && valObject instanceof String) {
									log.trace("got value: " + valObject);
									return (StringvalObject;
								}
								return null;
							}
							public Map<StringStringgetProperties() {
								Map<StringStringret = Maps.newHashMap();
								final Dictionary<StringObjectdictionary = configuration
								Enumeration<Stringkeys = dictionary.keys();
								while (keys.hasMoreElements()) {
									String key = keys.nextElement();
									Object val = dictionary.get(key);
									if (val instanceof String) {
										ret.put(key, (Stringval);
									}
								}
								return ret;
							}
							public int getOrdinal() {
								return 0;
							}
							public String getConfigName() {
								// TODO Auto-generated method stub
								return configuration.getPid();
							}
						});
					}
				}
catch (IOException | InvalidSyntaxException e) {
				log.error("Error retreiving configadmin property"e);
			}
		}
		return ret;
	}
New to GrepCode? Check out our FAQ X