/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.datatools.profiles.jdg; import java.util.Properties; import org.eclipse.datatools.connectivity.IConnectionProfile; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.core.workspace.ModelWorkspaceException; import org.teiid.designer.datatools.connection.ConnectionInfoHelper; import org.teiid.designer.datatools.connection.IConnectionInfoProvider; import org.teiid.designer.datatools.profiles.jbossds.IJBossDsProfileConstants; public class JDGConnectionInfoProvider extends ConnectionInfoHelper implements IConnectionInfoProvider, IJDGProfileConstants.PropertyKeys { @Override public String getDataSourcePasswordPropertyKey() { return null; } @Override public String getDataSourceType() { return IJDGProfileConstants.JDG_RA_TYPE; //$NON-NLS-1$ } @Override public String getPasswordPropertyKey() { return "bogus_xxxx"; //$NON-NLS-1$ } @Override public Properties getTeiidRelatedProperties(IConnectionProfile connectionProfile) { Properties connectionProps = new Properties(); Properties props = connectionProfile.getBaseProperties(); // String result = props.getProperty(IJBossDsProfileConstants.JNDI_PROP_ID); // if (null != result) { // connectionProps.setProperty(IJBossDsProfileConstants.JNDI_PROP_ID, result); // } String result = props.getProperty(IJBossDsProfileConstants.TRANSLATOR_PROP_ID); if (null != result) { connectionProps.setProperty(TRANSLATOR_NAME_KEY, result); } result = props.getProperty(CACHE_TYPE_MAP); if (null != result) { connectionProps.setProperty(CACHE_TYPE_MAP, result); } result = props.getProperty(REMOTE_SERVER_LIST); if (null != result) { connectionProps.setProperty(REMOTE_SERVER_LIST, result); } result = props.getProperty(CACHE_JNDI_NAME); if (null != result) { connectionProps.setProperty(CACHE_JNDI_NAME, result); } result = props.getProperty(HOT_ROD_CLIENT_PROPERTIES_FILE); if (null != result) { connectionProps.setProperty(HOT_ROD_CLIENT_PROPERTIES_FILE, result); } result = props.getProperty(STAGING_CACHE_NAME); if (null != result) { connectionProps.setProperty(STAGING_CACHE_NAME, result); } result = props.getProperty(ALIAS_CACHE_NAME); if (null != result) { connectionProps.setProperty(ALIAS_CACHE_NAME, result); } result = props.getProperty(PROTOBUF_DEFINITION_FILE); if (null != result) { connectionProps.setProperty(PROTOBUF_DEFINITION_FILE, result); } result = props.getProperty(MESSAGE_MARSHALLERS); if (null != result) { connectionProps.setProperty(MESSAGE_MARSHALLERS, result); } result = props.getProperty(MESSAGE_DESCRIPTOR); if (null != result) { connectionProps.setProperty(MESSAGE_DESCRIPTOR, result); } result = props.getProperty(MODULE); if (null != result) { connectionProps.setProperty(MODULE, result); } connectionProps.setProperty(CLASS_NAME, IJDGProfileConstants.REQUIRED_CLASS_NAME); System.out.println("JDGConnectionInfoProvider.getTeiidRelatedProps()"); System.out.println(" ===================================="); for( Object prop : connectionProps.keySet() ) { System.out.println(" key = " + (String)prop + " value = " + connectionProps.getProperty((String)prop)); } System.out.println(" ===================================="); return connectionProps; } @Override public void setConnectionInfo(ModelResource modelResource, IConnectionProfile connectionProfile) throws ModelWorkspaceException { Properties connectionProps = getCommonProfileProperties(connectionProfile); Properties props = connectionProfile.getBaseProperties(); // String result = props.getProperty(IJBossDsProfileConstants.JNDI_PROP_ID); // if (null != result) { // connectionProps.setProperty(CONNECTION_NAMESPACE + IJBossDsProfileConstants.JNDI_PROP_ID, result); // } String result = props.getProperty(IJBossDsProfileConstants.TRANSLATOR_PROP_ID); if (null != result) { connectionProps.setProperty(TRANSLATOR_NAMESPACE + TRANSLATOR_NAME_KEY, result); } result = props.getProperty(ALIAS_CACHE_NAME); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + ALIAS_CACHE_NAME, result); } result = props.getProperty(CACHE_TYPE_MAP); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + CACHE_TYPE_MAP, result); } result = props.getProperty(REMOTE_SERVER_LIST); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + REMOTE_SERVER_LIST, result); } result = props.getProperty(CACHE_JNDI_NAME); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + CACHE_JNDI_NAME, result); } result = props.getProperty(HOT_ROD_CLIENT_PROPERTIES_FILE); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + HOT_ROD_CLIENT_PROPERTIES_FILE, result); } result = props.getProperty(STAGING_CACHE_NAME); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + STAGING_CACHE_NAME, result); } result = props.getProperty(ALIAS_CACHE_NAME); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + ALIAS_CACHE_NAME, result); } result = props.getProperty(PROTOBUF_DEFINITION_FILE); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + PROTOBUF_DEFINITION_FILE, result); } result = props.getProperty(MESSAGE_MARSHALLERS); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + MESSAGE_MARSHALLERS, result); } result = props.getProperty(MESSAGE_DESCRIPTOR); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + MESSAGE_DESCRIPTOR, result); } result = props.getProperty(MODULE); if (null != result) { connectionProps.setProperty(CONNECTION_NAMESPACE + MODULE, result); } getHelper().removeProperties(modelResource, CONNECTION_PROFILE_NAMESPACE); getHelper().removeProperties(modelResource, TRANSLATOR_NAMESPACE); getHelper().removeProperties(modelResource, CONNECTION_NAMESPACE); connectionProps.setProperty(CLASS_NAME, IJDGProfileConstants.REQUIRED_CLASS_NAME); getHelper().setProperties(modelResource, connectionProps); result = props.getProperty(IJBossDsProfileConstants.JNDI_PROP_ID); if (null != result) { setJNDIName(modelResource, result); } addMaterializationTranslatorOverrideProperties(modelResource); } @Override public Properties getCommonProfileProperties(IConnectionProfile profile) { return super.getCommonProfileProperties(profile); } @Override public String getTranslatorName(ModelResource modelResource) { String translatorName = null; Properties translatorProps = null; try { translatorProps = getHelper().getProperties(modelResource, TRANSLATOR_NAMESPACE); } catch (ModelWorkspaceException ex) { } if(translatorProps!=null && !translatorProps.isEmpty()) { translatorName = translatorProps.getProperty(TRANSLATOR_NAMESPACE + TRANSLATOR_NAME_KEY); } if(translatorName!=null && !translatorName.isEmpty()) return translatorName; return "unknown"; //$NON-NLS-1$ } @Override public boolean requiresPassword(IConnectionProfile connectionProfile) { return false; } private void addMaterializationTranslatorOverrideProperties(ModelResource mr) { Properties props = new Properties(); props.setProperty(SUPPORTS_DIRECT_QUERY_PROCEDURE, Boolean.toString(true)); props.setProperty(SUPPORTS_NATIVE_QUERIES, Boolean.toString(true)); replaceTranlatorOverrideProperties(mr, props); } }