diff --git a/org.eclipse.osbp.persistence.feature/.project b/org.eclipse.osbp.persistence.feature/.project
index 1047dcb..6c92ca7 100644
--- a/org.eclipse.osbp.persistence.feature/.project
+++ b/org.eclipse.osbp.persistence.feature/.project
@@ -16,12 +16,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
diff --git a/org.eclipse.osbp.persistence.feature/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.persistence.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
index 0933f8c..19e3115 100644
--- a/org.eclipse.osbp.persistence.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
+++ b/org.eclipse.osbp.persistence.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -1,4 +1,5 @@
 //outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
 eclipse.preferences.version=1
 is_project_specific=true
 outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
diff --git a/org.eclipse.osbp.persistence/src/org/eclipse/osbp/persistence/PersistenceService.java b/org.eclipse.osbp.persistence/src/org/eclipse/osbp/persistence/PersistenceService.java
index f34d026..40abe3f 100644
--- a/org.eclipse.osbp.persistence/src/org/eclipse/osbp/persistence/PersistenceService.java
+++ b/org.eclipse.osbp.persistence/src/org/eclipse/osbp/persistence/PersistenceService.java
@@ -190,13 +190,26 @@
 			if (dsProps != null) {
 				dsf = lookupDsf(dsProps.getClientDriverName());
 				if (dsf == null) {
-					log.error("Driver {} for {} not registered", dsProps.getClientDriverName(), jndiDatasource);
+					log.error("Driver {} for {} not installed! If you want to use the driver, you have to add it to the .product configuration file!", dsProps.getClientDriverName(), jndiDatasource);
 					return null;
 				}
-				ds = dsf.createDataSource(dsProps.getDataSourceProperties());
+				Properties props=dsProps.getDataSourceProperties();
+				ds = dsf.createDataSource(props);
 				Hashtable<String, String> ht = new Hashtable<>();	// NOSONAR
 				ht.put(OSGI_JNDI_SERVICE_NAME, jndiDatasource);
 				bundleContext.registerService(DataSource.class, ds, ht);
+				if ( log.isInfoEnabled() ) {
+					log.info("Driver {} for Datasource {} found and registered!", dsProps.getClientDriverName(), jndiDatasource);
+					log.info("         url:        {}", props.getProperty("url"));
+					log.info("         Servername: {}", props.getProperty("serverName"));
+					log.info("         Database:   {}", props.getProperty("databaseName"));
+					log.info("         User:       {}", props.getProperty("user"));
+				}
+				if ( log.isDebugEnabled() ) {
+					log.debug("         Password:   {}", props.getProperty("password"));
+				} else {
+					log.info("         Password:   {}", props.getProperty("password").replaceAll("..", "*#"));
+				}
 			}
 		} catch (Exception e) {
 			log.error("createDataSource '" + jndiDatasource + "' " + e.getClass().getCanonicalName(), e);
@@ -454,8 +467,8 @@
 			properties.put(PersistenceUnitProperties.LOGGING_PARAMETERS, "true");
 			
 			PersistenceProvider persistenceProvider = (PersistenceProvider) bundleContext.getService(refs[0]);
-			if (log.isDebugEnabled())
-				log.debug("create entity manager factory for persistenceUnit " + persistenceUnitName + " jndi "
+			if (log.isInfoEnabled())
+				log.info("create entity manager factory for persistenceUnit " + persistenceUnitName + " jndi "
 						+ jndiName + " with properties:" + properties.toString());
 			try {
 				emf = persistenceProvider.createEntityManagerFactory(persistenceUnitName, properties);
@@ -471,8 +484,8 @@
 				emfprops.put(ENTITYMANAGERFACTORY, emf.getClass().getName());
 				emfprops.put(OSGI_UNIT_NAME, persistenceUnitName);
 				bundleContext.registerService(EntityManagerFactory.class.getName(), emf, emfprops);
-				if (log.isDebugEnabled())
-					log.debug("entity manager factory created and registered with unit name:" + persistenceUnitName);
+				if (log.isInfoEnabled())
+					log.info("entity manager factory created and registered with unit name:" + persistenceUnitName);
 			} else {
 				log.error(
 						"incorrect persistence provider, therefore the entity manager factory was NOT created and NOT registered for unit name: {}",
