package com.thingtrack.konekti.datasource;
import java.io.IOException;
import java.util.Dictionary;
import java.util.Hashtable;
import javax.annotation.PostConstruct;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.springframework.beans.factory.annotation.Autowired;
public class ConnectionConfiguration {
@Autowired
ConfigurationAdmin configurationAdmin;
private String driverClass;
private String url;
private String user;
private String password;
public ConnectionConfiguration(String driverClass, String url, String user, String password) {
this.driverClass = driverClass;
this.url = url;
this.user = user;
this.password = password;
}
@PostConstruct
private void createConfiguration(){
// Create a factory config and set the factory pid to "gemini.jpa.punit"
try {
Configuration config = configurationAdmin.createFactoryConfiguration("gemini.jpa.punit", null);
// Config properties
Dictionary props = new Hashtable();
// Must include the punit name
props.put("gemini.jpa.punit.name", "konekti");
// Specify JDBC properties for this installation
props.put("javax.persistence.jdbc.driver", driverClass);
props.put("javax.persistence.jdbc.url", url);
props.put("javax.persistence.jdbc.user", user);
props.put("javax.persistence.jdbc.password", password);
// Causes config to be created
config.update(props);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}