提交 bffe03a4 编写于 作者: S Sebastian Drozdz

Missing folder fixed after renaming plugin datavirtuality.core to datavirtuality


Former-commit-id: b06c4914
上级 ae95c2b5
......@@ -36,8 +36,8 @@ import org.jkiss.dbeaver.ext.datavirtuality.DataVirtualityUIActivator;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.ui.ICompositeDialogPage;
import org.jkiss.dbeaver.ui.IDataSourceConnectionTester;
import org.jkiss.dbeaver.ui.IDialogPageProvider;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.dialogs.connection.ConnectionPageAbstract;
import org.jkiss.dbeaver.ui.dialogs.connection.DriverPropertiesDialogPage;
......@@ -52,8 +52,8 @@ import java.util.Locale;
/**
* DataVirtualityConnectionPage
*/
public class DataVirtualityConnectionPage extends ConnectionPageAbstract implements ICompositeDialogPage, IDataSourceConnectionTester
{
public class DataVirtualityConnectionPage extends ConnectionPageAbstract implements IDialogPageProvider, IDataSourceConnectionTester {
private static final Log log = Log.getLog(DataVirtualityConnectionPage.class);
private Text hostText;
......@@ -69,14 +69,12 @@ public class DataVirtualityConnectionPage extends ConnectionPageAbstract impleme
private static ImageDescriptor logoImage = DataVirtualityUIActivator.getImageDescriptor("icons/datavirtuality_logo.png"); //$NON-NLS-1$
@Override
public void dispose()
{
public void dispose() {
super.dispose();
}
@Override
public void createControl(Composite composite)
{
public void createControl(Composite composite) {
setImageDescriptor(logoImage);
Composite control = new Composite(composite, SWT.NONE);
......@@ -166,15 +164,13 @@ public class DataVirtualityConnectionPage extends ConnectionPageAbstract impleme
}
@Override
public boolean isComplete()
{
public boolean isComplete() {
return hostText != null &&
!CommonUtils.isEmpty(hostText.getText());
!CommonUtils.isEmpty(hostText.getText());
}
@Override
public void loadSettings()
{
public void loadSettings() {
super.loadSettings();
// Load values from new connection info
......@@ -204,7 +200,7 @@ public class DataVirtualityConnectionPage extends ConnectionPageAbstract impleme
}
// TODO: need to fix for checkbox
if (sslCheckbox != null) {
sslCheckbox.setSelection(CommonUtils.notEmpty(connectionInfo.getProviderProperty(DataVirtualityConstants.PROP_SSL))=="mms" ? true : false);
sslCheckbox.setSelection(CommonUtils.notEmpty(connectionInfo.getProviderProperty(DataVirtualityConstants.PROP_SSL)).equals("mms") ? true : false);
}
if (usernameText != null) {
usernameText.setText(CommonUtils.notEmpty(connectionInfo.getUserName()));
......@@ -215,8 +211,7 @@ public class DataVirtualityConnectionPage extends ConnectionPageAbstract impleme
}
@Override
public void saveSettings(DBPDataSourceContainer dataSource)
{
public void saveSettings(DBPDataSourceContainer dataSource) {
DBPConnectionConfiguration connectionInfo = dataSource.getConnectionConfiguration();
if (hostText != null) {
connectionInfo.setHostName(hostText.getText().trim());
......@@ -280,10 +275,10 @@ public class DataVirtualityConnectionPage extends ConnectionPageAbstract impleme
}
@Override
public IDialogPage[] getSubPages(boolean extrasOnly, boolean forceCreate)
public IDialogPage[] getDialogPages(boolean extrasOnly, boolean forceCreate)
{
return new IDialogPage[] {
new DriverPropertiesDialogPage(this)
new DriverPropertiesDialogPage(this)
};
}
......
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.jkiss.dbeaver.ext.datavirtuality;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Release-Date: 20200831
Bundle-Vendor: %Bundle-Vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.jkiss.dbeaver.model,
org.jkiss.dbeaver.model.sql;visibility:=reexport,
org.jkiss.dbeaver.ext.generic;visibility:=reexport
Export-Package: org.jkiss.dbeaver.ext.datavirtuality,
org.jkiss.dbeaver.ext.datavirtuality.model
Bundle-Localization: OSGI-INF/l10n/bundle
Automatic-Module-Name: org.jkiss.dbeaver.ext.datavirtuality
Bundle-Vendor = JKISS
Bundle-Name = DBeaver Data Virtuality Extension core
datasource.datavirtuality.description = Data Virtualtiy datasource
source.. = src/
output.. = target/classes/
bin.includes = META-INF/,\
.,\
plugin.xml,\
icons/,\
OSGI-INF/
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension point="org.jkiss.dbeaver.generic.meta">
<meta id="datavirtuality" class="org.jkiss.dbeaver.ext.datavirtuality.model.DataVirtualityMetaModel" driverClass="com.datavirtuality.dv.jdbc.Driver"/>
</extension>
<extension point="org.jkiss.dbeaver.dataSourceProvider">
<!-- Data Virtuality -->
<datasource
class="org.jkiss.dbeaver.ext.datavirtuality.DataVirtualityDataSourceProvider"
description="%datasource.datavirtuality.description"
id="datavirtuality"
parent="generic"
label="Data Virtuality"
icon="icons/datavirtuality_icon.png"
dialect="basic">
<drivers managable="true">
<driver
id="datavirtuality_jdbc"
label="Data Virtuality"
class="com.datavirtuality.dv.jdbc.Driver"
icon="icons/datavirtuality_icon.png"
iconBig="icons/datavirtuality_icon_big.png"
sampleURL="jdbc:datavirtuality:{database}@mm://{host}:{port}"
defaultPort="31000"
defaultDatabase="datavirtuality"
defaultUser="admin"
defaultPassword="admin"
description="Data Virtuality JDBC driver"
webURL="https://https://datavirtuality.com/docs/"
categories="sql,analytic">
<file type="jar" path="C:\Users\admin\Downloads\datavirtuality-jdbc.jar"/>
</driver>
</drivers>
</datasource>
</extension>
<extension point="org.jkiss.dbeaver.sqlDialect">
<dialect id="datavirtuality" parent="generic" class="org.jkiss.dbeaver.ext.datavirtuality.model.DataVirtualitySQLDialect" label="Data Virtuality" description="Data Virtuality SQL dialect." icon="icons/datavirtuality_icon.png">
</dialect>
</extension>
</plugin>
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jkiss.dbeaver</groupId>
<artifactId>plugins</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>org.jkiss.dbeaver.ext.datavirtuality</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* 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.
*/
package org.jkiss.dbeaver.ext.datavirtuality;
import org.jkiss.dbeaver.model.DBConstants;
/**
* DataVirtuality constants
*/
public class DataVirtualityConstants
{
public static final String PROP_SSL = DBConstants.INTERNAL_PROP_PREFIX + "ssl@";
public static final String DEFAULT_HOST_PREFIX = "localhost";
public static final String DEFAULT_DB_NAME = "datavirtuality";
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* 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.
*/
package org.jkiss.dbeaver.ext.datavirtuality;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.datavirtuality.model.DataVirtualityDataSource;
import org.jkiss.dbeaver.ext.datavirtuality.model.DataVirtualityMetaModel;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.CommonUtils;
public class DataVirtualityDataSourceProvider extends JDBCDataSourceProvider {
private static final Log log = Log.getLog(DataVirtualityDataSourceProvider.class);
public DataVirtualityDataSourceProvider()
{
}
@Override
public void init(@NotNull DBPPlatform platform) {
}
@Override
public long getFeatures()
{
return FEATURE_SCHEMAS;
}
@Override
public String getConnectionURL(DBPDriver driver, DBPConnectionConfiguration connectionInfo)
{
StringBuilder url = new StringBuilder();
url.append("jdbc:datavirtuality:");
url.append(connectionInfo.getDatabaseName());
url.append("@");
if (!CommonUtils.isEmpty(connectionInfo.getProviderProperty(DataVirtualityConstants.PROP_SSL))) {
url.append(connectionInfo.getProviderProperty(DataVirtualityConstants.PROP_SSL));
}
else {
url.append("mm");
}
url.append("://");
url.append(connectionInfo.getHostName());
if (!CommonUtils.isEmpty(connectionInfo.getHostPort())) {
url.append(":").append(connectionInfo.getHostPort());
}
log.debug("getConnectionURL" + url.toString());
return url.toString();
}
private static boolean addParameter(StringBuilder url, String name, String value, boolean hasParam) {
if (!CommonUtils.isEmpty(value)) {
if (hasParam) url.append("&");
url.append(name).append("=").append(value);
return true;
}
return hasParam;
}
@NotNull
@Override
public DBPDataSource openDataSource(
@NotNull DBRProgressMonitor monitor,
@NotNull DBPDataSourceContainer container)
throws DBException
{
return new DataVirtualityDataSource(monitor, container, new DataVirtualityMetaModel());
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* 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.
*/
package org.jkiss.dbeaver.ext.datavirtuality.model;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.generic.model.GenericDataSource;
import org.jkiss.dbeaver.ext.generic.model.GenericSQLDialect;
import org.jkiss.dbeaver.ext.datavirtuality.DataVirtualityConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.CommonUtils;
import java.util.HashMap;
import java.util.Map;
public class DataVirtualityDataSource extends GenericDataSource {
public DataVirtualityDataSource(DBRProgressMonitor monitor, DBPDataSourceContainer container, DataVirtualityMetaModel metaModel)
throws DBException
{
super(monitor, container, metaModel, new DataVirtualitySQLDialect());
}
@Override
protected Map<String, String> getInternalConnectionProperties(DBRProgressMonitor monitor, DBPDriver driver, JDBCExecutionContext context, String purpose, DBPConnectionConfiguration connectionInfo) throws DBCException {
Map<String, String> props = new HashMap<>();
return props;
}
@Override
protected boolean isPopulateClientAppName() {
return false;
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* 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.
*/
package org.jkiss.dbeaver.ext.datavirtuality.model;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.generic.model.GenericDataSource;
import org.jkiss.dbeaver.ext.generic.model.GenericProcedure;
import org.jkiss.dbeaver.ext.generic.model.GenericTableBase;
import org.jkiss.dbeaver.ext.generic.model.GenericView;
import org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType;
import java.sql.SQLException;
import java.util.Map;
/**
* DataVirtualityMetaModel
*/
public class DataVirtualityMetaModel extends GenericMetaModel
{
private static final Log log = Log.getLog(DataVirtualityMetaModel.class);
public DataVirtualityMetaModel() {
super();
}
@Override
public GenericDataSource createDataSourceImpl(DBRProgressMonitor monitor, DBPDataSourceContainer container) throws DBException {
return new DataVirtualityDataSource(monitor, container, this);
}
@Override
public boolean supportsTableDDLSplit(GenericTableBase sourceObject) {
return false;
}
@Override
public String getViewDDL(DBRProgressMonitor monitor, GenericView sourceObject, Map<String, Object> options) throws DBException {
GenericDataSource dataSource = sourceObject.getDataSource();
try (JDBCSession session = DBUtils.openMetaSession(monitor, sourceObject, "Read DataVirtuality object DDL")) {
try (JDBCPreparedStatement dbStat = session.prepareStatement(
"SELECT definition FROM SYSADMIN.ViewDefinitions WHERE name ='" + sourceObject.getFullyQualifiedName(DBPEvaluationContext.DDL) + "'"))
{
try (JDBCResultSet dbResult = dbStat.executeQuery()) {
StringBuilder sql = new StringBuilder();
while (dbResult.nextRow()) {
sql.append(dbResult.getString(1));
}
String result = sql.toString().trim();
while (result.endsWith(";")) {
result = result.substring(0, result.length() - 1);
}
return result;
}
}
} catch (SQLException e) {
throw new DBException(e, dataSource);
}
}
@Override
public String getProcedureDDL(DBRProgressMonitor monitor, GenericProcedure sourceObject) throws DBException {
GenericDataSource dataSource = sourceObject.getDataSource();
boolean isFunction = sourceObject.getProcedureType() == DBSProcedureType.FUNCTION;
try (JDBCSession session = DBUtils.openMetaSession(monitor, sourceObject, "Read DataVirtuality object DDL")) {
try (JDBCPreparedStatement dbStat = session.prepareStatement(
"SELECT definition FROM SYSADMIN.ProcDefinitions WHERE name ='" + sourceObject.getFullyQualifiedName(DBPEvaluationContext.DDL) + "'"))
{
try (JDBCResultSet dbResult = dbStat.executeQuery()) {
StringBuilder sql = new StringBuilder();
while (dbResult.nextRow()) {
sql.append(dbResult.getString(1));
}
return sql.toString();
}
}
} catch (SQLException e) {
throw new DBException(e, dataSource);
}
}
@Override
public boolean isTableCommentEditable() {
return false;
}
@Override
public boolean isTableColumnCommentEditable() {
return false;
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2020 DBeaver Corp and others
*
* 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.
*/
package org.jkiss.dbeaver.ext.datavirtuality.model;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.ext.generic.model.GenericSQLDialect;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCDatabaseMetaData;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource;
import org.jkiss.dbeaver.model.sql.parser.rules.SQLDollarQuoteRule;
import org.jkiss.dbeaver.model.text.parser.TPRule;
import org.jkiss.dbeaver.model.text.parser.TPRuleProvider;
import java.util.Arrays;
import java.util.List;
public class DataVirtualitySQLDialect extends GenericSQLDialect implements TPRuleProvider {
public DataVirtualitySQLDialect() {
super("DataVirtuality", "datavirtuality");
}
public void initDriverSettings(JDBCDataSource dataSource, JDBCDatabaseMetaData metaData) {
super.initDriverSettings(dataSource, metaData);
addSQLKeywords(
Arrays.asList(
"SIMILAR TO"
));
}
@Override
public void extendRules(@Nullable DBPDataSourceContainer dataSource, @NotNull List<TPRule> rules, @NotNull RulePosition position) {
if (position == RulePosition.INITIAL || position == RulePosition.PARTITION) {
rules.add(new SQLDollarQuoteRule(dataSource, position == RulePosition.PARTITION));
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册