diff --git a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/ApplicationWorkbenchWindowAdvisor.java b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/ApplicationWorkbenchWindowAdvisor.java
index 2254b682de880d5f3fd20206ee2dfde33e919de0..f1fd5cf12bdb672374dab888b6ca289b878e3085 100644
--- a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/ApplicationWorkbenchWindowAdvisor.java
+++ b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/ApplicationWorkbenchWindowAdvisor.java
@@ -33,7 +33,7 @@ import org.eclipse.ui.part.ResourceTransfer;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.project.DBPProjectListener;
+import org.jkiss.dbeaver.model.app.DBPProjectListener;
import org.jkiss.dbeaver.registry.DataSourceRegistry;
import org.jkiss.dbeaver.registry.ProjectRegistry;
import org.jkiss.dbeaver.ui.UIUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverActivator.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverActivator.java
index 367e7c07ed8d9ee02a9a9a20c917c67cfae84980..9c94aefd155c8a245cc7c607cc7a2afbf3cd6013 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverActivator.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverActivator.java
@@ -23,7 +23,7 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.jkiss.dbeaver.ModelPreferences;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.impl.preferences.BundlePreferenceStore;
import org.jkiss.dbeaver.model.runtime.features.DBRFeatureRegistry;
import org.jkiss.dbeaver.utils.GeneralUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
index 241d3e69223e914d8793066f6fa5632fa767ff1a..798b2a97f616bec77904515699fbf029f8c09365 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
@@ -29,11 +29,14 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.*;
-import org.jkiss.dbeaver.model.admin.DBACertificateStorage;
+import org.jkiss.dbeaver.model.app.DBACertificateStorage;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPProjectManager;
import org.jkiss.dbeaver.model.data.DBDRegistry;
import org.jkiss.dbeaver.model.edit.DBERegistry;
-import org.jkiss.dbeaver.model.impl.security.DefaultCertificateStorage;
+import org.jkiss.dbeaver.model.impl.app.DefaultCertificateStorage;
import org.jkiss.dbeaver.model.navigator.DBNModel;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.qm.QMController;
import org.jkiss.dbeaver.model.qm.QMUtils;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
index c46cee62181d9b41d8fea5e0e2208bb1ee972f34..c61375c304a27b07852972d22ce7d747dea2d9e6 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
@@ -22,7 +22,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.internal.editors.text.EditorsPlugin;
import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.jkiss.dbeaver.DBeaverPreferences;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.impl.preferences.BundlePreferenceStore;
import org.jkiss.dbeaver.model.qm.QMConstants;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
index 3bc10f83d1036b171f27bc2eaa4c4be52d62be04..3fd580133747f07750c6ff8c7897fa09d7a94306 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
@@ -25,6 +25,8 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.*;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPClientHome;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.data.DBDDataFormatterProfile;
@@ -38,6 +40,7 @@ import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.model.net.DBWHandlerType;
import org.jkiss.dbeaver.model.net.DBWTunnel;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.runtime.DBRProcessDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressListener;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptorManager.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptorManager.java
index e1267e82b391c261129c3bb517e9db070e9257c2..218e7a985316e85aee98a5af2c7e04b3e1986b75 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptorManager.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptorManager.java
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.registry;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.edit.DBECommandContext;
import org.jkiss.dbeaver.model.edit.DBEObjectMaker;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderDescriptor.java
index f284e87f1d9f414ad942349ac462561216131609..cc73496801d981eef98d96ab65a17da4676c61b1 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderDescriptor.java
@@ -26,7 +26,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataSourceProvider;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.model.navigator.meta.*;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderRegistry.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderRegistry.java
index df1b557f4f8eb3dac598d10003760e0329dc4cde..3c6189c2d3d46fff3b25a54a25a27d7a91e02320 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderRegistry.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceProviderRegistry.java
@@ -24,7 +24,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.DBeaverActivator;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.connection.DBPConnectionType;
-import org.jkiss.dbeaver.model.DBPRegistryListener;
+import org.jkiss.dbeaver.model.app.DBPRegistryListener;
import org.jkiss.dbeaver.registry.driver.DriverDescriptor;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java
index 1cb8d55fca06cf8e6b499ea11674c845a68d459e..043fc2a7d34aa3a0cadeaf4189796cc082fdd7c8 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java
@@ -31,6 +31,8 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverNature;
import org.jkiss.dbeaver.model.*;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPConnectionBootstrap;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPConnectionEventType;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
index 347a448ff2162a354b5d40e1ba373d67164d7ae6..144dd653bae56652ddaade1529775b53568b6e74 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ProjectRegistry.java
@@ -25,9 +25,9 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverNature;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPExternalFileManager;
-import org.jkiss.dbeaver.model.DBPProjectManager;
-import org.jkiss.dbeaver.model.project.DBPProjectListener;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPProjectManager;
+import org.jkiss.dbeaver.model.app.DBPProjectListener;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.ui.actions.GlobalPropertyTester;
import org.jkiss.dbeaver.ui.resources.DefaultResourceHandlerImpl;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ResourceHandlerDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ResourceHandlerDescriptor.java
index 0c1fe25631f9332c6758747945a4e031f0906711..480de641ae319b5f2f465d9c7ed64eaa9eef3457 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ResourceHandlerDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/ResourceHandlerDescriptor.java
@@ -28,7 +28,7 @@ import org.eclipse.core.runtime.content.IContentType;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/AttributeTransformerDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/AttributeTransformerDescriptor.java
index d10f7c2d08988a00fe2754983976398f30a0fc14..a660a615e274184971c8669f0f268702df2cf9eb 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/AttributeTransformerDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/AttributeTransformerDescriptor.java
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.registry.datatype;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.data.DBDAttributeTransformer;
import org.jkiss.dbeaver.model.data.DBDAttributeTransformerDescriptor;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/DataTypeAbstractDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/DataTypeAbstractDescriptor.java
index dfcc0288e6aa18c5202f1d85cfb8412be4cad150..1f00ca027296c78fd7f1dd9ce8160edb4d5edc17 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/DataTypeAbstractDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/datatype/DataTypeAbstractDescriptor.java
@@ -21,7 +21,7 @@ import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBPDataKind;
-import org.jkiss.dbeaver.model.DBPRegistryDescriptor;
+import org.jkiss.dbeaver.model.app.DBPRegistryDescriptor;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import org.jkiss.dbeaver.registry.DataSourceProviderDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java
index e94b2bd5a33be42258c0297ab88aab9c04f4e3e8..ec3e84599c7a4f8d313c5e1964d792e9b61bf6b8 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/driver/DriverDescriptor.java
@@ -33,6 +33,8 @@ import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeNode;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import org.jkiss.dbeaver.model.runtime.OSDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterDescriptor.java
index 1e0bcfbc5be25bcaab54ba463bdc373abb7d6dff..458e8721d947e6dd067cabb1819785bcb148825d 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterDescriptor.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.registry.formatter;
import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.data.DBDDataFormatter;
import org.jkiss.dbeaver.model.data.DBDDataFormatterSample;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterProfile.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterProfile.java
index e8e0887ec42356909cd471ae208693cfe211fe5d..e9616c7484790a53c79399622a2c408e89d02c2d 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterProfile.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/formatter/DataFormatterProfile.java
@@ -17,9 +17,9 @@
*/
package org.jkiss.dbeaver.registry.formatter;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.data.DBDDataFormatter;
import org.jkiss.dbeaver.model.data.DBDDataFormatterProfile;
import org.jkiss.dbeaver.model.impl.preferences.SimplePreferenceStore;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/transfer/DataTransferProcessorDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/transfer/DataTransferProcessorDescriptor.java
index 5dcf8cea24250336135553d69e580a49a2804486..b59a08a9dba1dd24ba00dbff6f5b6a36a49afc3b 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/transfer/DataTransferProcessorDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/transfer/DataTransferProcessorDescriptor.java
@@ -22,8 +22,8 @@ import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPRegistryDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.app.DBPRegistryDescriptor;
import org.jkiss.dbeaver.model.impl.AbstractDescriptor;
import org.jkiss.dbeaver.registry.RegistryConstants;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/WebUtils.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/WebUtils.java
index 1e6b2b01d1069fddcae8bbe7225796e58c030d61..4e4fb0ba44427a2751afe0df04ea73c1afa9c9be 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/WebUtils.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/WebUtils.java
@@ -21,7 +21,7 @@ import org.eclipse.swt.program.Program;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.utils.CommonUtils;
import java.io.IOException;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/net/GlobalProxyAuthenticator.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/net/GlobalProxyAuthenticator.java
index 3d23cf4c8407839d51bfb0958381def34b3881d3..12a562f101a546115e31e967a1551ba16fd560c1 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/net/GlobalProxyAuthenticator.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/net/GlobalProxyAuthenticator.java
@@ -21,7 +21,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.access.DBAAuthInfo;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.exec.DBExecUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/DataSourcePropertyFilter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/DataSourcePropertyFilter.java
index 6298c206c0a15f62263f0e594dcdf1524f5f96d2..fc4d8ff42eb3212ed05d540457103187440f1e2e 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/DataSourcePropertyFilter.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/DataSourcePropertyFilter.java
@@ -21,8 +21,8 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
/**
* Datasource property filter
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ILazyPropertyLoadListener.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ILazyPropertyLoadListener.java
index 6f32f7dee3ae9fd778155fe071327cd44b0303d9..26247de26be2e1dbb8fc7ee2ae2406bb9170f6a1 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ILazyPropertyLoadListener.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ILazyPropertyLoadListener.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.runtime.properties;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
/**
* Lazy properties listener
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertyFilter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertyFilter.java
index b92abe172b9fffa4bb4d33b4d8e6e9001c6d694e..4ed7ffdd1c77287b5cf8bf5e61adc5273b116171 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertyFilter.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertyFilter.java
@@ -17,7 +17,7 @@
*/
package org.jkiss.dbeaver.runtime.properties;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
/**
* Interface for filters. Can accept or reject items.
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertySourceMulti.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertySourceMulti.java
index 52a8c802746a50f06c212978a869448e27c4a9cb..228e78fb8890649e40082fc6dc210ecf9d84c54d 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertySourceMulti.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/IPropertySourceMulti.java
@@ -19,7 +19,7 @@
package org.jkiss.dbeaver.runtime.properties;
import org.jkiss.code.Nullable;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
/**
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectAttributeDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectAttributeDescriptor.java
index 301e5ee1153cd5ca7f704ba1e9e4f866b4b5a23b..55776c36e0ee315be6439db93913c34c94a32e63 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectAttributeDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectAttributeDescriptor.java
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.runtime.properties;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.meta.IPropertyCacheValidator;
import org.jkiss.dbeaver.model.meta.LazyProperty;
import org.jkiss.dbeaver.model.meta.Property;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java
index d3aa86cdda5ef6b033d59c4260bd71517ccfde3c..f78597b6d256c409886e88220bda15cd3d68e810 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyDescriptor.java
@@ -20,14 +20,13 @@ package org.jkiss.dbeaver.runtime.properties;
import org.eclipse.core.runtime.Platform;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.DBPPersistedObject;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.meta.IPropertyValueListProvider;
import org.jkiss.dbeaver.model.meta.IPropertyValueTransformer;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
-import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.BeanUtils;
import org.jkiss.utils.CommonUtils;
import org.osgi.framework.Bundle;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyGroupDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyGroupDescriptor.java
index 8add1033158182993803cd68db5e3af2b2a2a59f..2ca521060940abb342cc6f54dd4ced32ec8726ea 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyGroupDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/ObjectPropertyGroupDescriptor.java
@@ -17,7 +17,7 @@
*/
package org.jkiss.dbeaver.runtime.properties;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.meta.PropertyGroup;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertiesContributor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertiesContributor.java
index 53fd03e830672bc4b386e1b4cfddafc81667ffe9..62a2ec2c49fef930bb3e0b77aea2e16aa4e83198 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertiesContributor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertiesContributor.java
@@ -19,7 +19,7 @@
package org.jkiss.dbeaver.runtime.properties;
import org.jkiss.dbeaver.core.CoreMessages;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import java.util.ArrayList;
import java.util.List;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceAbstract.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceAbstract.java
index ad667c8acfe8259d842112014bae97c79e3d31dc..065cc264adcc0adcc347913209dd2380860df714 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceAbstract.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceAbstract.java
@@ -22,9 +22,9 @@ import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBPContextProvider;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertyManager;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyManager;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCollection.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCollection.java
index b0e8ecaa5715d63038c1320cd547c9818a40e723..34d7208be7aa8d833f142398bca0be883cadf130 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCollection.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCollection.java
@@ -19,8 +19,8 @@ package org.jkiss.dbeaver.runtime.properties;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCustom.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCustom.java
index d16fba62c3ec83c8f40cc920c91bcf4833fe965c..6fb07986bd2e7255f94e46835760c80e2193e755 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCustom.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/properties/PropertySourceCustom.java
@@ -18,8 +18,8 @@
package org.jkiss.dbeaver.runtime.properties;
import org.jkiss.code.Nullable;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/DefaultEventFilter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/DefaultEventFilter.java
index a3b7bde006f2c081afe95e4192fb4c00de3239a2..72de543076bb390b02fbeb3912b77c835fceab21 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/DefaultEventFilter.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/DefaultEventFilter.java
@@ -19,7 +19,7 @@
package org.jkiss.dbeaver.runtime.qm;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.qm.QMConstants;
import org.jkiss.dbeaver.model.qm.QMEventFilter;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/QMLogFileWriter.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/QMLogFileWriter.java
index 85e70be15392dd2b09e4deb69533aeee1f506e4b..8ccc6c620c43222ad136ba48b198e921daea01a3 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/QMLogFileWriter.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/qm/QMLogFileWriter.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.runtime.qm;
import org.eclipse.core.runtime.IStatus;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
import org.jkiss.dbeaver.model.qm.QMConstants;
import org.jkiss.dbeaver.model.qm.QMEventFilter;
import org.jkiss.dbeaver.model.qm.QMMetaEvent;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java
index 8266dfa67c3b07f0fb84fffd9ee9d1eb4cc86b9d..81d9108d46da0f15f7b4fd98eda008f9376af81c 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java
@@ -29,7 +29,7 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataKind;
import org.jkiss.dbeaver.model.DBPDataSource;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.DBDDataFilter;
import org.jkiss.dbeaver.model.data.DBDDataReceiver;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/compare/CompareObjectsExecutor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/compare/CompareObjectsExecutor.java
index 0757d5f5a745de62d0a1af626ac75afd5aeaa4b7..d773f3af16e43aeff9af0703589aa2152355398f 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/compare/CompareObjectsExecutor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/compare/CompareObjectsExecutor.java
@@ -22,7 +22,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPNamedObject;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.DBPSystemObject;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseFolder;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IDataSourceConnectionEditorSite.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IDataSourceConnectionEditorSite.java
index 4bd783355b9938a64591f96494c3ea8c3cd25a36..da21344907988e9a6d4d8a01f1a709514bffbe90 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IDataSourceConnectionEditorSite.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/IDataSourceConnectionEditorSite.java
@@ -19,7 +19,7 @@
package org.jkiss.dbeaver.ui;
import org.jkiss.code.NotNull;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java
index e4ea893c279d4e0287a879469420fcb32932f553..10de23f72515fc4a1a37fd3617af007f2cced0c2 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java
@@ -70,6 +70,8 @@ import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPConnectionType;
import org.jkiss.dbeaver.model.meta.IPropertyValueListProvider;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.ui.actions.datasource.DataSourceInvalidateHandler;
import org.jkiss.dbeaver.ui.controls.*;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ObjectPropertyTester.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ObjectPropertyTester.java
index ff05ce8619df3933d6be23d04e0299cf3dff2bd6..07a1ba9dafe67179cff5c39594a01bd71aea0360 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ObjectPropertyTester.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ObjectPropertyTester.java
@@ -24,7 +24,7 @@ import org.jkiss.dbeaver.model.edit.DBEObjectMaker;
import org.jkiss.dbeaver.model.edit.DBEObjectManager;
import org.jkiss.dbeaver.model.edit.DBEObjectRenamer;
import org.jkiss.dbeaver.model.navigator.*;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSObjectFilter;
import org.jkiss.dbeaver.model.struct.DBSWrapper;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ResourcePropertyTester.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ResourcePropertyTester.java
index 6eab19a57daa22ce8cf95b81ca6fa2877541323c..646408522bddf73a0744bb637274dfe7435a5d3b 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ResourcePropertyTester.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/ResourcePropertyTester.java
@@ -21,7 +21,7 @@ import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.registry.ProjectRegistry;
import org.jkiss.dbeaver.ui.ActionUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectOpen.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectOpen.java
index 40493d1d58845a5bea0453d2efd47fff652fa07a..37dbb9f6b4131317a5dae2a4d57b2f32af8677e4 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectOpen.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/actions/navigator/NavigatorHandlerObjectOpen.java
@@ -38,7 +38,7 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.edit.DBEObjectEditor;
import org.jkiss.dbeaver.model.navigator.*;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/PropertyPageStandard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/PropertyPageStandard.java
index 712eae741e00bc9ad961edbdcf6280f7371c3ba4..dd70479524d5b576c36c4ee8594f005c9653e781 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/PropertyPageStandard.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/PropertyPageStandard.java
@@ -21,7 +21,7 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.*;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.dbeaver.runtime.properties.PropertiesContributor;
import org.jkiss.dbeaver.runtime.properties.ILazyPropertyLoadListener;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/NodeListControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/NodeListControl.java
index 97adf7a23ea4d500560466ed139b8c651a0c20e5..c03f1f764e637d8921bf738fac9dfa1402af1e0c 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/NodeListControl.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/NodeListControl.java
@@ -37,6 +37,7 @@ import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.INavigatorListener;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeNode;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSWrapper;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java
index 8d01a2b072f502495de95d6c183727513e12790f..aeb43e580e76509174e361002106a6488c53cbcc 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/itemlist/ObjectListControl.java
@@ -40,7 +40,7 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.IDataSourceContainerProvider;
import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
index f2dfd586d109bc72db221c2ee3358c49371c7c28..88ea726e94db676b75261e9867e65f0f9c532af4 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
@@ -52,8 +52,8 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.qm.*;
import org.jkiss.dbeaver.model.qm.meta.*;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetController.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetController.java
index 1ffb6908505e8f85bbcca652154f0bb37100f1db..b4cfa48226af8f31d9031391350f978878a5b964 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetController.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetController.java
@@ -19,7 +19,6 @@
package org.jkiss.dbeaver.ui.controls.resultset;
import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbenchPartSite;
@@ -28,7 +27,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPContextProvider;
import org.jkiss.dbeaver.model.DBPMessageType;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.data.DBDAttributeBinding;
import org.jkiss.dbeaver.model.data.DBDDataReceiver;
import org.jkiss.dbeaver.model.edit.DBEPersistAction;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
index e90436f0d3c8fe63c0482695c5878b6daf8d5458..6deb01ade7aa73b5633a9d5b185cf007580ed7e3 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
@@ -64,6 +64,7 @@ import org.jkiss.dbeaver.model.edit.DBEPersistAction;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.impl.local.StatResultSet;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/TransformerSettingsDialog.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/TransformerSettingsDialog.java
index 47a0e7f7c72f70b227dd56eb8b76672cb70b9c61..72a7886f2facc6cd3bcc4dad5f57b89d19e005dd 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/TransformerSettingsDialog.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/TransformerSettingsDialog.java
@@ -25,7 +25,7 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBPDataSource;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.data.DBDAttributeBinding;
import org.jkiss.dbeaver.model.data.DBDAttributeTransformerDescriptor;
import org.jkiss.dbeaver.model.virtual.DBVTransformSettings;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java
index 2da020ea9ccf8a9abc61ad0f76ed61e3e7ee0c7f..7213da8f572e043b4fdb704136ec6fd8f11be899 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java
@@ -75,6 +75,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.data.*;
import org.jkiss.dbeaver.model.exec.DBCSession;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/IValueManager.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/IValueManager.java
index 44a6aaa461edb287945933a373d869489d3e7cef..2023e7fc2d857f1394592400440eda9467e480d4 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/IValueManager.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/IValueManager.java
@@ -22,7 +22,7 @@ import org.eclipse.jface.action.IContributionManager;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
-import org.jkiss.dbeaver.model.DBPPropertyManager;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyManager;
import org.jkiss.dbeaver.model.exec.DBCException;
/**
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/BaseValueManager.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/BaseValueManager.java
index a7744b82006cc51bc8a9219e437f744b6a04716c..b3d4725ae8c201ec81bfe9c3514b82ffbc20e368 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/BaseValueManager.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/BaseValueManager.java
@@ -22,7 +22,7 @@ import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPropertyManager;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyManager;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/ContentValueManager.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/ContentValueManager.java
index 70629a32e2258d01e2d79c4c1a74aad87ca647f4..3e9b821c1f3ab451a9695b245148c7769a6c0044 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/ContentValueManager.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/data/managers/ContentValueManager.java
@@ -27,7 +27,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPMessageType;
-import org.jkiss.dbeaver.model.DBPPropertyManager;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyManager;
import org.jkiss.dbeaver.model.data.DBDContent;
import org.jkiss.dbeaver.model.data.DBDContentCached;
import org.jkiss.dbeaver.model.exec.DBCException;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/ConfirmationDialog.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/ConfirmationDialog.java
index 71f8022f6a00842c8e32d849e7a5ac054c8db8c6..97e2ae990af22498987def1e01c3b4946dbefa18 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/ConfirmationDialog.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/ConfirmationDialog.java
@@ -26,7 +26,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.DBeaverActivator;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.preferences.PreferenceStoreDelegate;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
index b494fe722e00e99068a541e31f3aca019efd8266..c2776b330c91f5e03a393513de681790da102f78 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPageSettings.java
@@ -34,7 +34,7 @@ import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceViewDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java
index 5a1d682f4edbe6a08efc3771f53042ed4715c800..bef338242fbf08256d88737bf6f17f8c16086f58 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java
@@ -25,7 +25,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBConstants;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
index 582b55287f3d82525531994e84a8780f01406e38..8c59414eb8be53a22f136244fd1496b526bf1b35 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionWizard.java
@@ -35,7 +35,7 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceInfo;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.exec.DBCSession;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionWizard.java
index 57b204afdd8f9887d2874aad41556a6b8d736fee..d2793207b157a4c8eba3df626aaa30391a820863 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionWizard.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/EditConnectionWizard.java
@@ -28,7 +28,7 @@ import org.eclipse.ui.IWorkbenchPropertyPage;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.CoreMessages;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceViewDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java
index ed3c0069644995221520c3662c1039211d0e4f01..dc0c99605d57e475b5dfdb4171c7528351b755d1 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/NewConnectionWizard.java
@@ -23,7 +23,7 @@ import org.eclipse.ui.IWorkbench;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.registry.DataSourceProviderDescriptor;
import org.jkiss.dbeaver.registry.DataSourceProviderRegistry;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/data/CursorViewDialog.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/data/CursorViewDialog.java
index 10b90f64debf8a181ee4b3dc94e5152b0cec909b..b1681a0c3fb9a5c465b26e8d19d4542e1ccdc48f 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/data/CursorViewDialog.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/data/CursorViewDialog.java
@@ -31,7 +31,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPDataSource;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.data.DBDCursor;
import org.jkiss.dbeaver.model.data.DBDDataFilter;
import org.jkiss.dbeaver.model.data.DBDDataReceiver;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java
index dc91c01173fb771b569eca461666cd3593aeaeaa..b7ca2a798a97e60737b0ce985a2b42ccb48d9da9 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInput.java
@@ -28,7 +28,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.IDataSourceContainerProvider;
import org.jkiss.dbeaver.model.edit.DBECommandContext;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/IDatabaseEditorInput.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/IDatabaseEditorInput.java
index 8a2a703fd50429dfc2eca35ee5e3165fb1e4914f..5fb60c797810c8a13ee889932cbb91daa93733a5 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/IDatabaseEditorInput.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/IDatabaseEditorInput.java
@@ -21,7 +21,7 @@ package org.jkiss.dbeaver.ui.editors;
import org.eclipse.ui.IEditorInput;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPContextProvider;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.edit.DBECommandContext;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/BinaryEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/BinaryEditor.java
index c217243067ccbd2398cba21a30f4099a27fa34fa..8802718578e51ae94ba248de9a8e1bb1129692ec 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/BinaryEditor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/BinaryEditor.java
@@ -39,8 +39,8 @@ import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.editors.EditorUtils;
import org.jkiss.dbeaver.ui.editors.binary.pref.HexPreferencesPage;
import org.jkiss.dbeaver.utils.ContentUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/pref/HexPreferencesPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/pref/HexPreferencesPage.java
index 1ccfca07f279066206a747c7fdcd9b4e187cab12..827ec5fa8bde5c17862907872455f4316195caac 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/pref/HexPreferencesPage.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/binary/pref/HexPreferencesPage.java
@@ -17,7 +17,6 @@
*/
package org.jkiss.dbeaver.ui.editors.binary.pref;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@@ -25,7 +24,7 @@ import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.preferences.AbstractPrefPage;
import org.jkiss.dbeaver.utils.PrefUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageProperties.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageProperties.java
index 5b33f824b95a4bf36e5391a2a0e9615bacfcc640..a93c01f78b3a300d354386e78416ff9e63992d50 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageProperties.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/TabbedFolderPageProperties.java
@@ -29,6 +29,8 @@ import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.progress.UIJob;
import org.jkiss.dbeaver.model.*;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.runtime.properties.ILazyPropertyLoadListener;
import org.jkiss.dbeaver.runtime.properties.PropertiesContributor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java
index 4696a8e94819eb142ef16df711e1d4fce1134696..9340da9405288933b15d1d0c56b069595179c513 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/object/struct/AttributeEditPage.java
@@ -32,6 +32,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.edit.DBECommandContext;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.struct.DBSEntityAttribute;
import org.jkiss.dbeaver.runtime.properties.ObjectPropertyDescriptor;
import org.jkiss.dbeaver.runtime.properties.PropertySourceAbstract;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
index 910f629e57e87fedecea3c9581eda3616024afdb..a40b019e01a27bf9b7b7946a34ed826f8fc55a12 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
@@ -58,6 +58,8 @@ import org.jkiss.dbeaver.model.data.DBDDataFilter;
import org.jkiss.dbeaver.model.data.DBDDataReceiver;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.impl.DefaultServerOutputReader;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressListener;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
index 27f257d98b167f91830f7a78ea83131739623b87..899452ec8db61bd045602b12d45ae4e49e17d5bc 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorBase.java
@@ -46,7 +46,7 @@ import org.jkiss.dbeaver.core.DBeaverActivator;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPDataSource;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect;
import org.jkiss.dbeaver.model.sql.*;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorSourceViewerConfiguration.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorSourceViewerConfiguration.java
index 8f0f2f4ae179910ab5c5b967c190244c262626d1..d12f0c606f4c79d6c77b57788364174861190b6f 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorSourceViewerConfiguration.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorSourceViewerConfiguration.java
@@ -43,8 +43,8 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.ui.editors.sql.indent.SQLAutoIndentStrategy;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/SyncConnectionAutoHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/SyncConnectionAutoHandler.java
index c82d3465491f67ce1ba708a9173741effa8bd640..c471ab21d044aec20c7dc077f6651022992698ee 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/SyncConnectionAutoHandler.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/SyncConnectionAutoHandler.java
@@ -20,14 +20,11 @@ package org.jkiss.dbeaver.ui.editors.sql.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.ui.menus.UIElement;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
-import org.jkiss.dbeaver.ui.editors.sql.SQLEditorBase;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import java.util.Map;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLAutoIndentStrategy.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLAutoIndentStrategy.java
index e6bcac66d4ebbd51a7e4d5f73f0e99565bfe5b0b..5c827c7f24dbdceb768b83d5c9afd0482bd0a4ff 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLAutoIndentStrategy.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLAutoIndentStrategy.java
@@ -21,7 +21,7 @@ import org.eclipse.jface.text.*;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPKeywordType;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
import org.jkiss.dbeaver.ui.editors.sql.syntax.SQLPartitionScanner;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLCommentAutoIndentStrategy.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLCommentAutoIndentStrategy.java
index 5544eeeb1c2dd9fcfa3d0a566eaa86932ed2ed53..02648625ea6ab40b0539e92732c34058b24951e7 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLCommentAutoIndentStrategy.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/indent/SQLCommentAutoIndentStrategy.java
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.ui.editors.sql.indent;
import org.eclipse.jface.text.*;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
import org.jkiss.dbeaver.utils.GeneralUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionAnalyzer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionAnalyzer.java
index c7b5ed0d1b5fc6a9d631f6ab3cd06fb65e5119ff..8e0f9681af2802d1bfa4826125abfd684ce66c78 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionAnalyzer.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionAnalyzer.java
@@ -26,6 +26,7 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer;
import org.jkiss.dbeaver.model.navigator.DBNNode;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.*;
import org.jkiss.dbeaver.model.struct.*;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java
index 775779f1dd960d540573e7682b4398ab8f844b5e..1d922abb5ae4c0bf4931753c41cc0b0eeb12b8cb 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/syntax/SQLCompletionProposal.java
@@ -30,7 +30,7 @@ import org.eclipse.swt.graphics.Point;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPNamedObject;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/text/PropertyEventDispatcher.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/text/PropertyEventDispatcher.java
index 7235f71fc500312e966df1e98486519ba2a16a36..4a75042801656e8732b665b665507af23da712f7 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/text/PropertyEventDispatcher.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/text/PropertyEventDispatcher.java
@@ -19,8 +19,8 @@ package org.jkiss.dbeaver.ui.editors.text;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.util.IPropertyChangeListener;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import java.util.*;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java
index e73c95022a10e253d0389a5e09c80b99ab098a7b..833a203769a75900185ada56a515f9d825764219 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/NavigatorAdapterFactory.java
@@ -32,6 +32,7 @@ import org.jkiss.dbeaver.model.*;
import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNResource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.model.struct.DBSDataManipulator;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorView.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorView.java
index 2c3715cb44add8f3fa8281910cb5309c8da17d94..8ae326ae09e71886f301ac471492d6a94c2a857c 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorView.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/database/DatabaseNavigatorView.java
@@ -23,7 +23,7 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.navigator.DBNEmptyNode;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNProject;
-import org.jkiss.dbeaver.model.project.DBPProjectListener;
+import org.jkiss.dbeaver.model.app.DBPProjectListener;
import org.jkiss.dbeaver.ui.IHelpContextIds;
import org.jkiss.dbeaver.ui.UIUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/project/ProjectExplorerView.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/project/ProjectExplorerView.java
index 943cfa03be4d71a7f942e138732e32bfcde3ae49..f07eb6de0470af2dd40b32c94e0312484739b703 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/project/ProjectExplorerView.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/navigator/project/ProjectExplorerView.java
@@ -29,7 +29,7 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.navigator.*;
-import org.jkiss.dbeaver.model.project.DBPProjectListener;
+import org.jkiss.dbeaver.model.app.DBPProjectListener;
import org.jkiss.dbeaver.ui.*;
import org.jkiss.dbeaver.ui.navigator.database.NavigatorViewBase;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
index 52e0bec16458eaa41d559f42bf55bd35784eef86..ca4d452becd18d1f491d4635a359ea3fe3e07100 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/perspective/DataSourceManagementToolbar.java
@@ -49,8 +49,12 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.*;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPRegistryListener;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.navigator.*;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java
index eaccf830304b083e1a95b68549a84fb80eab918f..df8269ceb99fbfc581c036ba5b0cb4c48e92b41a 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java
@@ -18,7 +18,6 @@
*/
package org.jkiss.dbeaver.ui.preferences;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Combo;
@@ -31,7 +30,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverActivator;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDataFormat.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDataFormat.java
index 126fad64218f078f87543a398df34f09b113cdf7..d869091cdc882f97cb5370017a20a2558df2abf8 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDataFormat.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDataFormat.java
@@ -27,7 +27,7 @@ import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.data.DBDDataFormatter;
import org.jkiss.dbeaver.model.data.DBDDataFormatterProfile;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
index 5258c363d94fd685ce26187c3e1e10a0e26ed132..dfb2a781b0c59ecc8720be9506a36be129d10232 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseGeneral.java
@@ -30,7 +30,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java
index 8357f8920e55deaf4b9144d3093ba09f6f7fbd11..3049953576767e1fabf5562e8215692c0cc82ad2 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDatabaseNavigator.java
@@ -19,7 +19,6 @@
package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.ControlEnableState;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
@@ -30,11 +29,10 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.navigator.database.NavigatorViewBase;
import org.jkiss.dbeaver.utils.PrefUtils;
-import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils;
/**
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDrivers.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDrivers.java
index e2bf6f3977a44e0dc9035b6e49008780f62fa107..4ee446efeec95628d7baac060ebc021e6a93abf5 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDrivers.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageDrivers.java
@@ -19,7 +19,6 @@
package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -32,7 +31,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.registry.driver.DriverDescriptor;
import org.jkiss.dbeaver.registry.encode.EncryptionException;
import org.jkiss.dbeaver.registry.encode.SecuredPasswordEncrypter;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java
index 537aef792a52f83da164b0d4639f6a3ef99978bd..99fc6c6bcfdbc66fe263a521a1689136b578504b 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageMetaData.java
@@ -27,7 +27,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageQueryManager.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageQueryManager.java
index 07e50e58444a2d6f45a33eeabac4a701a7496a52..f75c24f21149339c18168da802df4b11bf7d06c4 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageQueryManager.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageQueryManager.java
@@ -19,7 +19,6 @@
package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -30,7 +29,7 @@ import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.IWorkbenchPropertyPage;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.qm.QMConstants;
import org.jkiss.dbeaver.model.qm.QMObjectType;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetBinaries.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetBinaries.java
index d61b8b96edbf500f750a6650ff08f71548b2a148..2d71c6e31c4d309d44115aac5dff03a8e16a2948 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetBinaries.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetBinaries.java
@@ -27,7 +27,7 @@ import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.DBDBinaryFormatter;
import org.jkiss.dbeaver.ui.UIUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetMain.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetMain.java
index 07d400551ee6004ab881db5a115ae1ff0b5c8003..d0d7eefe3690cb62c0c5d00f2828148596717855 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetMain.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetMain.java
@@ -28,7 +28,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetPresentation.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetPresentation.java
index 4b1e4970759618b5c0616ccc5dc5e07c7f25853a..5104ec224833775dcc54d45075e82c1a3490c89c 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetPresentation.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSetPresentation.java
@@ -21,7 +21,7 @@ package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.DBeaverPreferences;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.resultset.spreadsheet.Spreadsheet;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLCompletion.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLCompletion.java
index bdf25066a233440440777c610252730270782a10..aac2ede28e3af9f2f90a2baef271f3cca818e94f 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLCompletion.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLCompletion.java
@@ -23,7 +23,7 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLEditor.java
index 6b6ce043ad1d92895a78ba546740d58a1fe3dbef..2ceb6a34a063faa27e1a6735f2119f56896b0505 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLEditor.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLEditor.java
@@ -19,12 +19,11 @@
package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.editors.sql.SQLEditor;
import org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLExecute.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLExecute.java
index 8d5d2aab50faad357fee6241c15e18e406bed803..cb75b8e64966e32177621e2ec809b38237052512 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLExecute.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLExecute.java
@@ -25,7 +25,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.runtime.sql.SQLScriptCommitType;
import org.jkiss.dbeaver.runtime.sql.SQLScriptErrorHandling;
import org.jkiss.dbeaver.ui.UIUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLFormat.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLFormat.java
index e6df0dd085971493e967239a1328dc03a7aea125..3651cc1bdf7041236f29edbaba98adc8211644fa 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLFormat.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageSQLFormat.java
@@ -34,7 +34,7 @@ import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.DBPIdentifierCase;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.sql.format.external.SQLExternalFormatter;
import org.jkiss.dbeaver.model.sql.format.tokenized.SQLTokenizedFormatter;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PreferenceStoreDelegate.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PreferenceStoreDelegate.java
index 0c959c7496f2c9596e0fcb36ecf4be6df0f4fcd1..437a5329624c42e7eb3698fda906fd0f8573b67c 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PreferenceStoreDelegate.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PreferenceStoreDelegate.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.jface.preference.IPersistentPreferenceStore;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import java.io.IOException;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java
index ca80007694d934b8a5d310e2d963926491d41bd7..975957ab9825ff8196b41107cb9eec2fae33946e 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/TargetPrefPage.java
@@ -38,7 +38,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPContextProvider;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import org.jkiss.dbeaver.model.navigator.DBNNode;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyDescriptorDelegate.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyDescriptorDelegate.java
index d7a28beb2b8a8aa3203f8f3afa9bb138d3601872..f6e9c5a30b06281769004fa1f4e91506f1d7fee0 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyDescriptorDelegate.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyDescriptorDelegate.java
@@ -21,8 +21,8 @@ import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.ui.UIUtils;
/**
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceDelegate.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceDelegate.java
index a685ddc1ce0fdc923ac283f7a3534f32b20114be..0abbadd0c8b291299bf75a8cc4271b0172a82de4 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceDelegate.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertySourceDelegate.java
@@ -19,8 +19,8 @@ package org.jkiss.dbeaver.ui.properties;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource2;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
/**
* PropertySourceDelegate
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyTreeViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyTreeViewer.java
index 1b40da72a679a7d82f6659f0735fe0f549a781b8..45d5b186bcef485d4109773116fecf0d517733cd 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyTreeViewer.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/properties/PropertyTreeViewer.java
@@ -34,8 +34,8 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPObject;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/AbstractResourceHandler.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/AbstractResourceHandler.java
index 8774e9d3944a08a53fb5d885941ff71d561ce932..379b0b06dd06e91a3f3a3e2ab86d9217cb47e9c2 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/AbstractResourceHandler.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/AbstractResourceHandler.java
@@ -28,8 +28,7 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNResource;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
-import org.jkiss.dbeaver.registry.ResourceHandlerDescriptor;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import java.util.Collection;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmark.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmark.java
index ff53e2d3dfe31f9a8b65ed78162c4d1367f14231..5fa2f06bd699b28d661ad9f40510ffeb402316b4 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmark.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmark.java
@@ -26,7 +26,7 @@ import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNResource;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.registry.DataSourceRegistry;
import org.jkiss.dbeaver.utils.RuntimeUtils;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmarkFolder.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmarkFolder.java
index 35763e4de61e281cd26969247945f2f95071f855..67968fd90db5728f542d18076a0f644fbfe84d53 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmarkFolder.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/resources/bookmarks/DBNBookmarkFolder.java
@@ -26,7 +26,7 @@ import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNResource;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.ui.UIIcon;
import java.util.Collection;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
index ac733ff5f97ef0f63096f29a04c6c74cbd4f4e4b..2585e3157fba4cb251639ffb9526548c31754096 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/AbstractSearchPage.java
@@ -26,16 +26,13 @@ import org.eclipse.swt.widgets.Composite;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.core.DBeaverCore;
-import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.navigator.DBNDataSource;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
-import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.utils.CommonUtils;
-import java.lang.reflect.InvocationTargetException;
import java.util.*;
public abstract class AbstractSearchPage extends DialogPage implements ISearchPage {
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java
index cce11dc518011122600ff943495a0e44438351d3..2bea34d661048d3c08e633df0352398a9f8772ed 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/data/SearchDataPage.java
@@ -31,7 +31,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.navigator.*;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/metadata/SearchMetadataPage.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/metadata/SearchMetadataPage.java
index 0cf018935d7f1b9a599866cf393987168b4b5439..f46a0032da744e454bde6d1ea79f5bbfee9ffe09 100644
--- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/metadata/SearchMetadataPage.java
+++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/search/metadata/SearchMetadataPage.java
@@ -30,7 +30,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPDataSource;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.navigator.*;
import org.jkiss.dbeaver.model.runtime.DBRProgressListener;
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml b/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml
index 1a39db78249d7eed25906ce88ff16ffb70663568..6c239774f8239f7e5da6015db171a263bd298951 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.ext.erd/plugin.xml
@@ -55,7 +55,7 @@
-
+
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDActivator.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDActivator.java
index 0ea5e37f573704d37994c67de2af029cc7117538..f0df61adedde8f87ddca0d7c75cf05f27ea7de53 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDActivator.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDActivator.java
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.ext.erd;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.impl.preferences.BundlePreferenceStore;
import org.osgi.framework.BundleContext;
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDPreferencesInitializer.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDPreferencesInitializer.java
index 216a9c11b344e30bc4e1779e3798f28e31151d8e..04dc8c924e218b69eace4ad2547c9cea80889182 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDPreferencesInitializer.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/ERDPreferencesInitializer.java
@@ -1,7 +1,7 @@
package org.jkiss.dbeaver.ext.erd;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.impl.preferences.BundlePreferenceStore;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/action/DiagramToggleGridAction.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/action/DiagramToggleGridAction.java
index 0383a523af795c8198f00c287be4322e661101cc..0287226ca7570e7449dbe3880fa935b52bb567b9 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/action/DiagramToggleGridAction.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/action/DiagramToggleGridAction.java
@@ -23,7 +23,7 @@ package org.jkiss.dbeaver.ext.erd.action;
import org.eclipse.jface.action.Action;
import org.jkiss.dbeaver.ext.erd.ERDActivator;
import org.jkiss.dbeaver.ext.erd.ERDConstants;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.utils.PrefUtils;
/**
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeStyle.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeStyle.java
index e7a876d225f2348bde6d5ed18a580b1054f834c7..61c504214a07138d9896009f6ca037164a20a7a1 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeStyle.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeStyle.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.ext.erd.editor;
import org.eclipse.jface.preference.IPreferenceStore;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.erd.ERDConstants;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.utils.CommonUtils;
/**
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeVisibility.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeVisibility.java
index 58a4d7fdac63c6aea3aae8e58a80909a437b66b0..8b4f7ec543de083fb86db02337e256aa94a89027 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeVisibility.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDAttributeVisibility.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.ext.erd.editor;
import org.eclipse.jface.preference.IPreferenceStore;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.erd.ERDConstants;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.utils.CommonUtils;
/**
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDPreferencePage.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDPreferencePage.java
index 07e7b0ba864cf840a8b24499888a3ee168bc1f65..4ea5e4915ece60b13c463a3d1b7d2f0258440fe5 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDPreferencePage.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/editor/ERDPreferencePage.java
@@ -30,7 +30,7 @@ import org.eclipse.ui.IWorkbenchPropertyPage;
import org.jkiss.dbeaver.ext.erd.ERDActivator;
import org.jkiss.dbeaver.ext.erd.ERDConstants;
import org.jkiss.dbeaver.ext.erd.ERDMessages;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.preferences.AbstractPrefPage;
import org.jkiss.dbeaver.utils.PrefUtils;
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObject.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObject.java
index 318f719bb909dbd1b80d48ec3fc57678fe7de877..5bfd0197bf90d2ce73d88f5f58a1f7fda261a33f 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObject.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObject.java
@@ -26,7 +26,7 @@ import org.eclipse.ui.PlatformUI;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.model.DBPNamedObject;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress;
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObjectAdapter.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObjectAdapter.java
index b2825a7b7050a077421eeebf4c3860721962d009..845754b73b8bb05ae7fd51f4b421f7fc5b14f95b 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObjectAdapter.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDObjectAdapter.java
@@ -21,7 +21,7 @@ import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.gef.EditPart;
import org.jkiss.dbeaver.model.DBPNamedObject;
import org.jkiss.dbeaver.model.DBPObject;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.DBPQualifiedObject;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagram.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagram.java
index 1be4d5ccc6f9563b7ddf1a0e68a4ecf82452d44c..f6587fe4ed07d4a24d0615078edc9179ff5a120b 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagram.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagram.java
@@ -25,7 +25,7 @@ import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNResource;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
/**
* DBNDiagram
diff --git a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagramFolder.java b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagramFolder.java
index 47b3cab47bd05507f0b14ba265a94cb8b56a23d0..9c3fa6b1f207162bbe935d575c248b41c1ba31db 100644
--- a/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagramFolder.java
+++ b/plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/navigator/DBNDiagramFolder.java
@@ -26,7 +26,7 @@ import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.navigator.DBNResource;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
/**
* DBNDiagramFolder
diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java
index f1ff5e0f75bf0a8f26a9db5f3efb4c068614e448..f226d0850aa005519485accbad4210a19539c180 100644
--- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java
+++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/model/MySQLDataSource.java
@@ -32,7 +32,7 @@ import org.jkiss.dbeaver.ext.mysql.model.plan.MySQLPlanAnalyser;
import org.jkiss.dbeaver.ext.mysql.model.session.MySQLSessionManager;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.DBPErrorAssistant;
-import org.jkiss.dbeaver.model.admin.DBACertificateStorage;
+import org.jkiss.dbeaver.model.app.DBACertificateStorage;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.admin.sessions.DBAServerSessionManager;
import org.jkiss.dbeaver.model.exec.*;
diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLExportWizard.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLExportWizard.java
index 0143513be751c0974e033818d0fcc68480a2ab33..363a9af7f7195d5ed8be78f9636f382ec77a7c4f 100644
--- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLExportWizard.java
+++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLExportWizard.java
@@ -31,7 +31,7 @@ import org.jkiss.dbeaver.ext.mysql.MySQLDataSourceProvider;
import org.jkiss.dbeaver.ext.mysql.MySQLMessages;
import org.jkiss.dbeaver.ext.mysql.MySQLServerHome;
import org.jkiss.dbeaver.ext.mysql.model.MySQLTableBase;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleContentBFILE.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleContentBFILE.java
index 4eea1ce845024c2684d3dff25d9eb18bd7cb9ebc..67c995abea9516b1d4194643b28f1e9162cc8768 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleContentBFILE.java
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/data/OracleContentBFILE.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.ext.oracle.data;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.data.DBDContentStorage;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/PrefPageOracle.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/PrefPageOracle.java
index c6e3cadfa3f3d5fa0c0058d470d91740367f7ccf..e7bea7c3e4f61b1caf2674424967b4c3be95d4c1 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/PrefPageOracle.java
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/PrefPageOracle.java
@@ -23,7 +23,7 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.ext.oracle.model.OracleConstants;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.preferences.PreferenceStoreDelegate;
diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNode.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNode.java
index 891d8da995cf0792c63f79a618e53fd29482ad2c..3c168d980af30b66d4a2c20cc929f16445a90805 100644
--- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNode.java
+++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNode.java
@@ -18,8 +18,8 @@
package org.jkiss.dbeaver.ext.postgresql.model.plan;
import org.jkiss.code.Nullable;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/tools/PostgreBackupWizard.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/tools/PostgreBackupWizard.java
index 269cc05f3230e42a912ebea5b83615f1912f51ff..22bebddf62cbeb028804a4d7a4513e24d9e6117d 100644
--- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/tools/PostgreBackupWizard.java
+++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/tools/PostgreBackupWizard.java
@@ -27,11 +27,10 @@ import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreSchema;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreTableBase;
import org.jkiss.dbeaver.model.DBPEvaluationContext;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.ui.UIUtils;
-import org.jkiss.dbeaver.ui.dialogs.DialogUtils;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.dbeaver.utils.RuntimeUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java
index 719c312ff9b5e3a98c490ac7e3d77f3b14487286..ae4af60d702fef69ef349c1d580644cd7f9d2bdb 100644
--- a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java
+++ b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/WMIDataSourceProvider.java
@@ -21,9 +21,11 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.wmi.model.WMIDataSource;
import org.jkiss.dbeaver.model.*;
+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.connection.DBPDriverLibrary;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.wmi.service.WMIService;
diff --git a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/edit/WMINamespaceManager.java b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/edit/WMINamespaceManager.java
index f768babe8c99aa5367d1d328e3728c93c9fcd2f7..affdb0bfeeb5c45b18326e51d4e71f697be1011e 100644
--- a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/edit/WMINamespaceManager.java
+++ b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/edit/WMINamespaceManager.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.ext.wmi.edit;
import org.jkiss.dbeaver.DBException;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.edit.DBEPersistAction;
import org.jkiss.dbeaver.ext.wmi.model.WMINamespace;
import org.jkiss.dbeaver.model.edit.DBECommand;
diff --git a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/model/WMIPropertySource.java b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/model/WMIPropertySource.java
index 0844995fa5340e8e631d59eac139e2bba17da696..d87c3254a9e15e355ce910b09dbe182a30ec0ca0 100644
--- a/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/model/WMIPropertySource.java
+++ b/plugins/org.jkiss.dbeaver.ext.wmi/src/org/jkiss/dbeaver/ext/wmi/model/WMIPropertySource.java
@@ -20,8 +20,8 @@ package org.jkiss.dbeaver.ext.wmi.model;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertySource;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.wmi.service.WMIException;
diff --git a/plugins/org.jkiss.dbeaver.model/META-INF/MANIFEST.MF b/plugins/org.jkiss.dbeaver.model/META-INF/MANIFEST.MF
index 39fac7d1dd623937c9187c810fece1148c203a99..f90e85dca9efdbbe254009dfe4881ccb43387d3c 100644
--- a/plugins/org.jkiss.dbeaver.model/META-INF/MANIFEST.MF
+++ b/plugins/org.jkiss.dbeaver.model/META-INF/MANIFEST.MF
@@ -11,6 +11,7 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.model.access,
org.jkiss.dbeaver.model.admin,
org.jkiss.dbeaver.model.admin.sessions,
+ org.jkiss.dbeaver.model.app,
org.jkiss.dbeaver.model.connection,
org.jkiss.dbeaver.model.data,
org.jkiss.dbeaver.model.data.aggregate,
@@ -23,6 +24,7 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.model.exec.plan,
org.jkiss.dbeaver.model.exec.trace,
org.jkiss.dbeaver.model.impl,
+ org.jkiss.dbeaver.model.impl.app,
org.jkiss.dbeaver.model.impl.data,
org.jkiss.dbeaver.model.impl.data.formatters,
org.jkiss.dbeaver.model.impl.data.transformers,
@@ -36,7 +38,6 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.model.impl.local,
org.jkiss.dbeaver.model.impl.net,
org.jkiss.dbeaver.model.impl.preferences,
- org.jkiss.dbeaver.model.impl.security,
org.jkiss.dbeaver.model.impl.sql,
org.jkiss.dbeaver.model.impl.sql.edit,
org.jkiss.dbeaver.model.impl.sql.edit.struct,
@@ -46,9 +47,9 @@ Export-Package: org.jkiss.dbeaver,
org.jkiss.dbeaver.model.navigator,
org.jkiss.dbeaver.model.navigator.meta,
org.jkiss.dbeaver.model.net,
- org.jkiss.dbeaver.model.project,
org.jkiss.dbeaver.model.qm,
org.jkiss.dbeaver.model.qm.meta,
+ org.jkiss.dbeaver.model.preferences,
org.jkiss.dbeaver.model.runtime,
org.jkiss.dbeaver.model.runtime.features,
org.jkiss.dbeaver.model.runtime.load,
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/ModelPreferences.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/ModelPreferences.java
index 775015856daa61827a66bba97e337926ff3c94b3..7ea7aea6ce22f6533f577ff29ce83ed0bbfbc925 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/ModelPreferences.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/ModelPreferences.java
@@ -21,7 +21,7 @@ package org.jkiss.dbeaver;
import org.jkiss.dbeaver.bundle.ModelActivator;
import org.jkiss.dbeaver.model.DBConstants;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.exec.DBCExecutionPurpose;
import org.jkiss.dbeaver.model.impl.preferences.BundlePreferenceStore;
import org.jkiss.dbeaver.model.qm.QMConstants;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java
index c645474e5b1fe733e8013a81b6cf334d4a79fff8..15453d03b7839efb327de706089c0e285d7e3abe 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceContainer.java
@@ -21,11 +21,14 @@ import org.eclipse.equinox.security.storage.ISecurePreferences;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPClientHome;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.data.DBDPreferences;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressListener;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceProvider.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceProvider.java
index 5fbe29cee2deef0af023f57c452b9d5dfdcd8a01..6aa321897e9edffbc29fe4799d960f0e345618f0 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceProvider.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceProvider.java
@@ -19,8 +19,10 @@ package org.jkiss.dbeaver.model;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
+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.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
/**
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
index 5e81f46b40f177ce0f80910f1af55f8319b78ff1..47e63d45aaf77ae8160f7b9c56cf98269490de65 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBUtils.java
@@ -23,11 +23,13 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.connection.DBPClientHome;
import org.jkiss.dbeaver.model.data.*;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer;
import org.jkiss.dbeaver.model.impl.data.DefaultValueHandler;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.*;
import org.jkiss.dbeaver.model.struct.*;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/DBACertificateStorage.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBACertificateStorage.java
similarity index 96%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/DBACertificateStorage.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBACertificateStorage.java
index 1d5be9358de8c52658c48ed46fc12652493a25ed..2402701cdf84b565e80c2e56fb6f29f4a5410d37 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/DBACertificateStorage.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBACertificateStorage.java
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-package org.jkiss.dbeaver.model.admin;
+package org.jkiss.dbeaver.model.app;
import org.jkiss.dbeaver.DBException;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/DBAClientSecurity.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBAClientSecurity.java
similarity index 96%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/DBAClientSecurity.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBAClientSecurity.java
index a2f9fc1e6879bf81d499f24396269c005c970c6e..71133a24bf45bda2cfc6fa85f305afdee2cde430 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/DBAClientSecurity.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBAClientSecurity.java
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-package org.jkiss.dbeaver.model.admin;
+package org.jkiss.dbeaver.model.app;
import org.eclipse.equinox.security.storage.ISecurePreferences;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPApplication.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..2992d34be1d065cb90f232d8173f73993c0c31db
--- /dev/null
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPApplication.java
@@ -0,0 +1,30 @@
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package org.jkiss.dbeaver.model.app;
+
+import org.jkiss.code.NotNull;
+
+/**
+ * DBPApplication
+ */
+public interface DBPApplication
+{
+ @NotNull
+ DBAClientSecurity getClientSecurity();
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceRegistry.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPDataSourceRegistry.java
similarity index 90%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceRegistry.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPDataSourceRegistry.java
index 50c8c9b2c51129f4b1d41df1bfab405e13978c85..ceef6b3da7cd2f6f6eae06c694d37f1e82f23f39 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourceRegistry.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPDataSourceRegistry.java
@@ -1,73 +1,77 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-package org.jkiss.dbeaver.model;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.equinox.security.storage.ISecurePreferences;
-import org.jkiss.code.NotNull;
-import org.jkiss.code.Nullable;
-
-import java.util.List;
-
-/**
- * DBPDataSourceRegistry
- */
-public interface DBPDataSourceRegistry {
-
- String CONFIG_FILE_PREFIX = ".dbeaver-data-sources"; //$NON-NLS-1$
- String CONFIG_FILE_EXT = ".xml"; //$NON-NLS-1$
- String CONFIG_FILE_NAME = CONFIG_FILE_PREFIX + CONFIG_FILE_EXT;
-
- @NotNull
- DBPPlatform getPlatform();
- /**
- * Owner project.
- */
- IProject getProject();
-
- @Nullable
- DBPDataSourceContainer getDataSource(String id);
-
- @Nullable
- DBPDataSourceContainer getDataSource(DBPDataSource dataSource);
-
- @Nullable
- DBPDataSourceContainer findDataSourceByName(String name);
-
- List extends DBPDataSourceContainer> getDataSources();
-
- void addDataSourceListener(DBPEventListener listener);
-
- boolean removeDataSourceListener(DBPEventListener listener);
-
- void addDataSource(DBPDataSourceContainer dataSource);
-
- void removeDataSource(DBPDataSourceContainer dataSource);
-
- void updateDataSource(DBPDataSourceContainer dataSource);
-
- void flushConfig();
-
- void refreshConfig();
-
- void notifyDataSourceListeners(final DBPEvent event);
-
- @NotNull
- ISecurePreferences getSecurePreferences();
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package org.jkiss.dbeaver.model.app;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.equinox.security.storage.ISecurePreferences;
+import org.jkiss.code.NotNull;
+import org.jkiss.code.Nullable;
+import org.jkiss.dbeaver.model.DBPDataSource;
+import org.jkiss.dbeaver.model.DBPDataSourceContainer;
+import org.jkiss.dbeaver.model.DBPEvent;
+import org.jkiss.dbeaver.model.DBPEventListener;
+
+import java.util.List;
+
+/**
+ * DBPDataSourceRegistry
+ */
+public interface DBPDataSourceRegistry {
+
+ String CONFIG_FILE_PREFIX = ".dbeaver-data-sources"; //$NON-NLS-1$
+ String CONFIG_FILE_EXT = ".xml"; //$NON-NLS-1$
+ String CONFIG_FILE_NAME = CONFIG_FILE_PREFIX + CONFIG_FILE_EXT;
+
+ @NotNull
+ DBPPlatform getPlatform();
+ /**
+ * Owner project.
+ */
+ IProject getProject();
+
+ @Nullable
+ DBPDataSourceContainer getDataSource(String id);
+
+ @Nullable
+ DBPDataSourceContainer getDataSource(DBPDataSource dataSource);
+
+ @Nullable
+ DBPDataSourceContainer findDataSourceByName(String name);
+
+ List extends DBPDataSourceContainer> getDataSources();
+
+ void addDataSourceListener(DBPEventListener listener);
+
+ boolean removeDataSourceListener(DBPEventListener listener);
+
+ void addDataSource(DBPDataSourceContainer dataSource);
+
+ void removeDataSource(DBPDataSourceContainer dataSource);
+
+ void updateDataSource(DBPDataSourceContainer dataSource);
+
+ void flushConfig();
+
+ void refreshConfig();
+
+ void notifyDataSourceListeners(final DBPEvent event);
+
+ @NotNull
+ ISecurePreferences getSecurePreferences();
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPlatform.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPPlatform.java
similarity index 94%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPlatform.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPPlatform.java
index 21176254dcba83503f62b0a4b73a97d2c1ea205d..72306b9909aaa6dde198a4ccc4238a7dc71ffb2a 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPlatform.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPPlatform.java
@@ -16,12 +16,12 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-package org.jkiss.dbeaver.model;
+package org.jkiss.dbeaver.model.app;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.jkiss.code.NotNull;
-import org.jkiss.dbeaver.model.admin.DBACertificateStorage;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.data.DBDRegistry;
import org.jkiss.dbeaver.model.edit.DBERegistry;
import org.jkiss.dbeaver.model.navigator.DBNModel;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/project/DBPProjectListener.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectListener.java
similarity index 93%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/project/DBPProjectListener.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectListener.java
index 536193317e8057930f108ee8f380a5e7bf3fef14..cc7e01782cd208fa4ef7cc3d851d3151eedbe094 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/project/DBPProjectListener.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectListener.java
@@ -1,29 +1,29 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-package org.jkiss.dbeaver.model.project;
-
-import org.eclipse.core.resources.IProject;
-
-/**
- * DBPProjectListener
- */
-public interface DBPProjectListener
-{
- void handleActiveProjectChange(IProject oldValue, IProject newValue);
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package org.jkiss.dbeaver.model.app;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * DBPProjectListener
+ */
+public interface DBPProjectListener
+{
+ void handleActiveProjectChange(IProject oldValue, IProject newValue);
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPProjectManager.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectManager.java
similarity index 87%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPProjectManager.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectManager.java
index fa94e3bc6628c9adba0ba00bd7484d4a903b822d..05fe95493f24c9605f3e1e6c650e1daa4bed6009 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPProjectManager.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPProjectManager.java
@@ -1,41 +1,39 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-package org.jkiss.dbeaver.model;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.jkiss.dbeaver.model.project.DBPProjectListener;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
-
-/**
- * ProjectManager
- */
-public interface DBPProjectManager
-{
- DBPResourceHandler getResourceHandler(IResource resource);
-
- IProject getActiveProject();
- void setActiveProject(IProject project);
- void addProject(IProject project);
- void removeProject(IProject project);
- void addProjectListener(DBPProjectListener listener);
- void removeProjectListener(DBPProjectListener listener);
-
- DBPDataSourceRegistry getDataSourceRegistry(IProject project);
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package org.jkiss.dbeaver.model.app;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+
+/**
+ * ProjectManager
+ */
+public interface DBPProjectManager
+{
+ DBPResourceHandler getResourceHandler(IResource resource);
+
+ IProject getActiveProject();
+ void setActiveProject(IProject project);
+ void addProject(IProject project);
+ void removeProject(IProject project);
+ void addProjectListener(DBPProjectListener listener);
+ void removeProjectListener(DBPProjectListener listener);
+
+ DBPDataSourceRegistry getDataSourceRegistry(IProject project);
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPRegistryDescriptor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPRegistryDescriptor.java
similarity index 95%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPRegistryDescriptor.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPRegistryDescriptor.java
index a71cd92b7320313153864498ab20dcfd2505aa2e..961120b54831a2acfe095640fd6be15283c4513e 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPRegistryDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPRegistryDescriptor.java
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-package org.jkiss.dbeaver.model;
+package org.jkiss.dbeaver.model.app;
/**
* DBPRegistryDescriptor
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPRegistryListener.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPRegistryListener.java
similarity index 93%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPRegistryListener.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPRegistryListener.java
index f166804b15cee81f72f82dd8974814a808b911b1..4d1874ac4075872aad891d1179d5cfea765c9327 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPRegistryListener.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPRegistryListener.java
@@ -1,31 +1,31 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-package org.jkiss.dbeaver.model;
-
-/**
- * DBPRegistryListener
- */
-public interface DBPRegistryListener
-{
-
- void handleRegistryLoad(DBPDataSourceRegistry registry);
-
- void handleRegistryUnload(DBPDataSourceRegistry registry);
-
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package org.jkiss.dbeaver.model.app;
+
+/**
+ * DBPRegistryListener
+ */
+public interface DBPRegistryListener
+{
+
+ void handleRegistryLoad(DBPDataSourceRegistry registry);
+
+ void handleRegistryUnload(DBPDataSourceRegistry registry);
+
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/project/DBPResourceHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPResourceHandler.java
similarity index 95%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/project/DBPResourceHandler.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPResourceHandler.java
index 2998576f4116a0a4a2988c1edd4b49d359f9cb78..8c044b17a9c9f2bdd467a8619938e1de8123a669 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/project/DBPResourceHandler.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/app/DBPResourceHandler.java
@@ -1,57 +1,57 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-package org.jkiss.dbeaver.model.project;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.jkiss.code.NotNull;
-import org.jkiss.dbeaver.DBException;
-import org.jkiss.dbeaver.model.DBPDataSourceContainer;
-import org.jkiss.dbeaver.model.navigator.DBNNode;
-
-import java.util.Collection;
-
-/**
- * Resource handler
- */
-public interface DBPResourceHandler {
-
- int FEATURE_OPEN = 1;
- int FEATURE_DELETE = 2;
- int FEATURE_CREATE_FOLDER = 4;
- int FEATURE_RENAME = 8;
- int FEATURE_MOVE_INTO = 16;
-
- int getFeatures(IResource resource);
-
- @NotNull
- DBNNode makeNavigatorNode(@NotNull DBNNode parentNode, @NotNull IResource resource) throws CoreException, DBException;
-
- void openResource(@NotNull IResource resource) throws CoreException, DBException;
-
- @NotNull
- String getTypeName(@NotNull IResource resource);
-
- String getResourceDescription(@NotNull IResource resource);
-
- Collection getAssociatedDataSources(IResource resource);
-
- @NotNull
- String getResourceNodeName(@NotNull IResource resource);
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+package org.jkiss.dbeaver.model.app;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.jkiss.code.NotNull;
+import org.jkiss.dbeaver.DBException;
+import org.jkiss.dbeaver.model.DBPDataSourceContainer;
+import org.jkiss.dbeaver.model.navigator.DBNNode;
+
+import java.util.Collection;
+
+/**
+ * Resource handler
+ */
+public interface DBPResourceHandler {
+
+ int FEATURE_OPEN = 1;
+ int FEATURE_DELETE = 2;
+ int FEATURE_CREATE_FOLDER = 4;
+ int FEATURE_RENAME = 8;
+ int FEATURE_MOVE_INTO = 16;
+
+ int getFeatures(IResource resource);
+
+ @NotNull
+ DBNNode makeNavigatorNode(@NotNull DBNNode parentNode, @NotNull IResource resource) throws CoreException, DBException;
+
+ void openResource(@NotNull IResource resource) throws CoreException, DBException;
+
+ @NotNull
+ String getTypeName(@NotNull IResource resource);
+
+ String getResourceDescription(@NotNull IResource resource);
+
+ Collection getAssociatedDataSources(IResource resource);
+
+ @NotNull
+ String getResourceNodeName(@NotNull IResource resource);
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriver.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriver.java
index 6887d847440674d2d647830f1b9c94838576d602..bd1489760356b68a8f20e2610574b93856d068c1 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriver.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/connection/DBPDriver.java
@@ -24,7 +24,7 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPDataSourceProvider;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBPNamedObject;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeNode;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeTransformerDescriptor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeTransformerDescriptor.java
index e3c1c136425d8716796731929f79891534e7f1c7..f6486bd29be3c77ac38b2fe5146cdd967ee39845 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeTransformerDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDAttributeTransformerDescriptor.java
@@ -19,8 +19,8 @@
package org.jkiss.dbeaver.model.data;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.DBPRegistryDescriptor;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.app.DBPRegistryDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import java.util.List;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDDataFormatterProfile.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDDataFormatterProfile.java
index bf29919094ff268878320294c204bc56b83ef040..f05f5f5fd03332092e8b617da01447ad497e4868 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDDataFormatterProfile.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/data/DBDDataFormatterProfile.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.model.data;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import java.io.IOException;
import java.util.Locale;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/edit/DBEObjectEditor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/edit/DBEObjectEditor.java
index 0b64ac218661c3dae87450ef1de51f2adf47b807..4241ef69b671e16879a3cddb6f77f58844e18ee2 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/edit/DBEObjectEditor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/edit/DBEObjectEditor.java
@@ -19,7 +19,7 @@
package org.jkiss.dbeaver.model.edit;
import org.jkiss.dbeaver.model.DBPObject;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.edit.prop.DBEPropertyHandler;
/**
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ExternalContentStorage.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ExternalContentStorage.java
index d32a28f338b87fbe37bce1e4beb69d75e90d5160..839fc1c0a84416f3dfea8b44dd63290c0bcfb371 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ExternalContentStorage.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ExternalContentStorage.java
@@ -17,7 +17,7 @@
*/
package org.jkiss.dbeaver.model.impl;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.data.DBDContentStorage;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.utils.ContentUtils;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/PropertyDescriptor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/PropertyDescriptor.java
index 50c368d9dc997a769a520ba24dc5ebd700f15b5e..4ef023ccbccc44e130e2f28ba718549e24431707 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/PropertyDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/PropertyDescriptor.java
@@ -22,7 +22,7 @@ import org.eclipse.core.runtime.IConfigurationElement;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.meta.IPropertyValueListProvider;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ProxyPropertyDescriptor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ProxyPropertyDescriptor.java
index 9eed1458d5bdaacc2dd083ed337b9094281603e1..3a795bd7e24165ce0f6b4add7bf37033f3f71d23 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ProxyPropertyDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/ProxyPropertyDescriptor.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.model.impl;
import org.jkiss.code.NotNull;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
/**
* ProxyPropertyDescriptor
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/TemporaryContentStorage.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/TemporaryContentStorage.java
index 6f488c41d60e91d5eb97a47d9321a529906cd9b8..0addd77e28fb3c2c5566ca01fedfe1049b3aaf3f 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/TemporaryContentStorage.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/TemporaryContentStorage.java
@@ -17,7 +17,7 @@
*/
package org.jkiss.dbeaver.model.impl;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.data.DBDContentStorage;
import org.jkiss.dbeaver.model.data.DBDContentStorageLocal;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/security/DefaultCertificateStorage.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/app/DefaultCertificateStorage.java
similarity index 97%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/security/DefaultCertificateStorage.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/app/DefaultCertificateStorage.java
index a88be3725747ee1a62e2485ab8871675edd6ab83..a509078a8f2decc98f73ceedd7611d5617aa9fb1 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/security/DefaultCertificateStorage.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/app/DefaultCertificateStorage.java
@@ -15,11 +15,11 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-package org.jkiss.dbeaver.model.impl.security;
+package org.jkiss.dbeaver.model.impl.app;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.admin.DBACertificateStorage;
+import org.jkiss.dbeaver.model.app.DBACertificateStorage;
import java.io.*;
import java.security.KeyStore;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSourceProvider.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSourceProvider.java
index 4f4475b06b245be2138473234545f7b39886d1ad..1d7f740bc63dbdd0a9a18e9a7449fed7b527a3ed 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSourceProvider.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSourceProvider.java
@@ -19,11 +19,13 @@ package org.jkiss.dbeaver.model.impl.jdbc;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
+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.messages.ModelMessages;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.*;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.impl.PropertyDescriptor;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentBLOB.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentBLOB.java
index e31e8d281595b3ee27c412fdec2695c5cfbc8f26..22019397add293e556ded44998682e0d2ff88af2 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentBLOB.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentBLOB.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.model.impl.jdbc.data;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.data.DBDContentStorage;
import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentCLOB.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentCLOB.java
index f80a3d69b5d6fc45d2cbe965200c0dd858feb998..37d215bc357a231347f54637d1d3cc3559078515 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentCLOB.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/JDBCContentCLOB.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.model.impl.jdbc.data;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.data.DBDContent;
import org.jkiss.dbeaver.model.data.DBDContentCached;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCContentValueHandler.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCContentValueHandler.java
index 58904a654a636ad7aeaee1a5a04d73d1c6fac3d0..c9107d86b4a5b22880203ebbf3e852b1354b57dd 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCContentValueHandler.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/data/handlers/JDBCContentValueHandler.java
@@ -21,7 +21,7 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.model.DBPDataSource;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.data.*;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.DBCSession;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/HTTPTunnelImpl.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/HTTPTunnelImpl.java
index 984b1e06ab83397286b1a129ead7172a21022cbd..1abd98f968ffd3176225dc9c27ec52044e19710f 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/HTTPTunnelImpl.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/HTTPTunnelImpl.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.model.impl.net;
import org.jkiss.dbeaver.DBException;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.model.net.DBWTunnel;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java
index 2d3495f4fedcd406cc7056e85e55c8551e3909da..c25ba1343f3c2c3456ca70264f45889c2627bfaf 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java
@@ -21,9 +21,9 @@ import com.jcraft.jsch.*;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.net.DBWHandlerConfiguration;
import org.jkiss.dbeaver.model.net.DBWTunnel;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/AbstractPreferenceStore.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/AbstractPreferenceStore.java
index 329b4d604bf54b69347eea9f8a35589b2115b6e4..e18c1b240126ffa25f7598516c2036ef7c069687 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/AbstractPreferenceStore.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/AbstractPreferenceStore.java
@@ -1,8 +1,8 @@
package org.jkiss.dbeaver.model.impl.preferences;
import org.eclipse.core.commands.common.EventManager;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
public abstract class AbstractPreferenceStore extends EventManager implements DBPPreferenceStore {
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/SimplePreferenceStore.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/SimplePreferenceStore.java
index 3d71e755982a73679701510f1c5b6d82b961bc19..5c5d801387cab89924df1ba5e4d891edb3dfb5fb 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/SimplePreferenceStore.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/preferences/SimplePreferenceStore.java
@@ -17,8 +17,8 @@
*/
package org.jkiss.dbeaver.model.impl.preferences;
-import org.jkiss.dbeaver.model.DBPPreferenceListener;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.utils.CommonUtils;
import java.util.HashMap;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/edit/SQLObjectEditor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/edit/SQLObjectEditor.java
index e04debb00f2e14b06cc6b06750a14e993ac26359..07f53aef174f19b7b34dc173c1dcfc852ed2500a 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/edit/SQLObjectEditor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/sql/edit/SQLObjectEditor.java
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.model.impl.sql.edit;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPNamedObject2;
-import org.jkiss.dbeaver.model.DBPPropertyDescriptor;
+import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.DBPSaveableObject;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.edit.*;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNModel.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNModel.java
index f2a294831250cd2c22cdaf0f83463e8ec762c16e..df7ff43ab4598d8372f0fde94117a70734544995 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNModel.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNModel.java
@@ -27,7 +27,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBIconComposite;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.navigator.meta.DBXTreeFolder;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProject.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
index 2c082c250bc0129d8ddd2401bae29ed20dbbc1bd..d5939befca5bc322841368dbb20db05322a7febf 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProject.java
@@ -22,9 +22,9 @@ import org.eclipse.core.runtime.CoreException;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.DBIcon;
-import org.jkiss.dbeaver.model.DBPDataSourceRegistry;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor;
import org.jkiss.utils.ArrayUtils;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java
index d0701fea24484e9a39803104ed1479d77e3714f7..99c4f221824ca0457e0fa698439634b648fd22f4 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNProjectDatabases.java
@@ -21,6 +21,7 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.*;
+import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
import org.jkiss.dbeaver.model.messages.ModelMessages;
import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNResource.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
index 73441876244a164d03d81d5f160716602a16d639..bb6af683afdb6000e2a2612225fd135078a09e44 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNResource.java
@@ -27,7 +27,7 @@ import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.meta.Property;
-import org.jkiss.dbeaver.model.project.DBPResourceHandler;
+import org.jkiss.dbeaver.model.app.DBPResourceHandler;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java
index 31bab8a9537e29bb547608c505bd42b5c3c5e3ee..49d74cc580fe8c20c2277edb3460a99fef6e2b7c 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/navigator/DBNRoot.java
@@ -20,7 +20,7 @@ package org.jkiss.dbeaver.model.navigator;
import org.eclipse.core.resources.IProject;
import org.jkiss.dbeaver.model.messages.ModelMessages;
import org.jkiss.dbeaver.model.DBPImage;
-import org.jkiss.dbeaver.model.project.DBPProjectListener;
+import org.jkiss.dbeaver.model.app.DBPProjectListener;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.ArrayUtils;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/net/DBWTunnel.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/net/DBWTunnel.java
index 7798f62eda3c573bd2e77b389205f62f74379cf3..5ecb7fd06e50f69f66236e7b5bd9ad5e29e4d740 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/net/DBWTunnel.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/net/DBWTunnel.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.model.net;
import org.jkiss.dbeaver.DBException;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPreferenceListener.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPreferenceListener.java
similarity index 92%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPreferenceListener.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPreferenceListener.java
index d0a545c73ca4f2abab15fd526ce8b85181f3d389..22286b1aa0e49fe48d92d35f97c56192dc6c4be2 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPreferenceListener.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPreferenceListener.java
@@ -1,35 +1,35 @@
-package org.jkiss.dbeaver.model;
-
-import java.util.EventListener;
-import java.util.EventObject;
-
-public interface DBPPreferenceListener extends EventListener {
-
- class PreferenceChangeEvent extends EventObject {
-
- private String propertyName;
- private Object oldValue;
- private Object newValue;
-
- public PreferenceChangeEvent(Object source, String property, Object oldValue,
- Object newValue) {
- super(source);
- this.propertyName = property;
- this.oldValue = oldValue;
- this.newValue = newValue;
- }
-
- public String getProperty() {
- return propertyName;
- }
- public Object getNewValue() {
- return newValue;
- }
- public Object getOldValue() {
- return oldValue;
- }
- }
-
-
- void preferenceChange(PreferenceChangeEvent event);
-}
+package org.jkiss.dbeaver.model.preferences;
+
+import java.util.EventListener;
+import java.util.EventObject;
+
+public interface DBPPreferenceListener extends EventListener {
+
+ class PreferenceChangeEvent extends EventObject {
+
+ private String propertyName;
+ private Object oldValue;
+ private Object newValue;
+
+ public PreferenceChangeEvent(Object source, String property, Object oldValue,
+ Object newValue) {
+ super(source);
+ this.propertyName = property;
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ }
+
+ public String getProperty() {
+ return propertyName;
+ }
+ public Object getNewValue() {
+ return newValue;
+ }
+ public Object getOldValue() {
+ return oldValue;
+ }
+ }
+
+
+ void preferenceChange(PreferenceChangeEvent event);
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPreferenceStore.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPreferenceStore.java
similarity index 94%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPreferenceStore.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPreferenceStore.java
index c884a7749c213443f5855ee4e29069115a448684..e2d4c4a094a4daef1419fddd9c7f5e0f41b846b9 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPreferenceStore.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPreferenceStore.java
@@ -1,48 +1,48 @@
-package org.jkiss.dbeaver.model;
-
-import java.io.IOException;
-
-public interface DBPPreferenceStore {
-
- boolean contains(String name);
-
- boolean getBoolean(String name);
- double getDouble(String name);
- float getFloat(String name);
- int getInt(String name);
- long getLong(String name);
- String getString(String name);
-
- boolean getDefaultBoolean(String name);
- double getDefaultDouble(String name);
- float getDefaultFloat(String name);
- int getDefaultInt(String name);
- long getDefaultLong(String name);
- String getDefaultString(String name);
-
- boolean isDefault(String name);
-
- boolean needsSaving();
-
- void setDefault(String name, double value);
- void setDefault(String name, float value);
- void setDefault(String name, int value);
- void setDefault(String name, long value);
- void setDefault(String name, String defaultObject);
- void setDefault(String name, boolean value);
- void setToDefault(String name);
-
- void setValue(String name, double value);
- void setValue(String name, float value);
- void setValue(String name, int value);
- void setValue(String name, long value);
- void setValue(String name, String value);
- void setValue(String name, boolean value);
-
- void addPropertyChangeListener(DBPPreferenceListener listener);
- void removePropertyChangeListener(DBPPreferenceListener listener);
- void firePropertyChangeEvent(String name, Object oldValue, Object newValue);
-
- void save() throws IOException;
-
-}
+package org.jkiss.dbeaver.model.preferences;
+
+import java.io.IOException;
+
+public interface DBPPreferenceStore {
+
+ boolean contains(String name);
+
+ boolean getBoolean(String name);
+ double getDouble(String name);
+ float getFloat(String name);
+ int getInt(String name);
+ long getLong(String name);
+ String getString(String name);
+
+ boolean getDefaultBoolean(String name);
+ double getDefaultDouble(String name);
+ float getDefaultFloat(String name);
+ int getDefaultInt(String name);
+ long getDefaultLong(String name);
+ String getDefaultString(String name);
+
+ boolean isDefault(String name);
+
+ boolean needsSaving();
+
+ void setDefault(String name, double value);
+ void setDefault(String name, float value);
+ void setDefault(String name, int value);
+ void setDefault(String name, long value);
+ void setDefault(String name, String defaultObject);
+ void setDefault(String name, boolean value);
+ void setToDefault(String name);
+
+ void setValue(String name, double value);
+ void setValue(String name, float value);
+ void setValue(String name, int value);
+ void setValue(String name, long value);
+ void setValue(String name, String value);
+ void setValue(String name, boolean value);
+
+ void addPropertyChangeListener(DBPPreferenceListener listener);
+ void removePropertyChangeListener(DBPPreferenceListener listener);
+ void firePropertyChangeEvent(String name, Object oldValue, Object newValue);
+
+ void save() throws IOException;
+
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertyDescriptor.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertyDescriptor.java
similarity index 95%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertyDescriptor.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertyDescriptor.java
index c2ab87aa507365d0d3191583fc0242271b8891e6..1dba83c81940156b1cbfb4c3f0c73c214436fcd8 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertyDescriptor.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertyDescriptor.java
@@ -1,79 +1,79 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-package org.jkiss.dbeaver.model;
-
-import org.jkiss.code.NotNull;
-import org.jkiss.code.Nullable;
-
-/**
- * Property descriptor.
- */
-public interface DBPPropertyDescriptor {
-
- /**
- * Returns the id for this property. This object is used internally to distinguish one property descriptor from another.
- */
- @NotNull
- Object getId();
-
- /**
- * Returns the name of the category to which this property belongs. Properties
- * belonging to the same category are grouped together visually. This localized
- * string is shown to the user
- */
- @Nullable
- String getCategory();
-
- /**
- * Returns the display name for this property. This localized string is shown to
- * the user as the name of this property.
- *
- * @return a displayable name
- */
- @NotNull
- String getDisplayName();
-
- /**
- * Returns a brief description of this property. This localized string is shown
- * to the user when this property is selected.
- */
- @Nullable
- String getDescription();
-
- /**
- * Returns the type of this property. Types is a java class.
- */
- @Nullable
- Class> getDataType();
-
- boolean isRequired();
-
- /**
- * Remote property.
- * Means that model will has to perform server roundtrip to obtain value of this property.
- * @return true for remote
- */
- boolean isRemote();
-
- @Nullable
- Object getDefaultValue();
-
- // TODO: remove "object" parameter
- boolean isEditable(Object object);
-
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+package org.jkiss.dbeaver.model.preferences;
+
+import org.jkiss.code.NotNull;
+import org.jkiss.code.Nullable;
+
+/**
+ * Property descriptor.
+ */
+public interface DBPPropertyDescriptor {
+
+ /**
+ * Returns the id for this property. This object is used internally to distinguish one property descriptor from another.
+ */
+ @NotNull
+ Object getId();
+
+ /**
+ * Returns the name of the category to which this property belongs. Properties
+ * belonging to the same category are grouped together visually. This localized
+ * string is shown to the user
+ */
+ @Nullable
+ String getCategory();
+
+ /**
+ * Returns the display name for this property. This localized string is shown to
+ * the user as the name of this property.
+ *
+ * @return a displayable name
+ */
+ @NotNull
+ String getDisplayName();
+
+ /**
+ * Returns a brief description of this property. This localized string is shown
+ * to the user when this property is selected.
+ */
+ @Nullable
+ String getDescription();
+
+ /**
+ * Returns the type of this property. Types is a java class.
+ */
+ @Nullable
+ Class> getDataType();
+
+ boolean isRequired();
+
+ /**
+ * Remote property.
+ * Means that model will has to perform server roundtrip to obtain value of this property.
+ * @return true for remote
+ */
+ boolean isRemote();
+
+ @Nullable
+ Object getDefaultValue();
+
+ // TODO: remove "object" parameter
+ boolean isEditable(Object object);
+
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertyManager.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertyManager.java
similarity index 94%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertyManager.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertyManager.java
index 231f897501eff200c832a067f1842b1cdd49e576..c2e8fa0dfde65830a7d1e2ced6c51d6ccf967f63 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertyManager.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertyManager.java
@@ -1,30 +1,30 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-package org.jkiss.dbeaver.model;
-
-import org.jkiss.code.Nullable;
-
-/**
- * Property manager
- */
-public interface DBPPropertyManager extends DBPPropertySource {
-
- void addProperty(DBPPropertyDescriptor prop);
-
- void addProperty(@Nullable String category, Object id, String name, Object value);
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+package org.jkiss.dbeaver.model.preferences;
+
+import org.jkiss.code.Nullable;
+
+/**
+ * Property manager
+ */
+public interface DBPPropertyManager extends DBPPropertySource {
+
+ void addProperty(DBPPropertyDescriptor prop);
+
+ void addProperty(@Nullable String category, Object id, String name, Object value);
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertySource.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertySource.java
similarity index 94%
rename from plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertySource.java
rename to plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertySource.java
index a0f796ba785ece3194af96ab66e9cdcf4464d6cd..b0796bce3c5803a63f5f1793fda612e71109c0e1 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPPropertySource.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/preferences/DBPPropertySource.java
@@ -1,46 +1,46 @@
-/*
- * DBeaver - Universal Database Manager
- * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License (version 2)
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-package org.jkiss.dbeaver.model;
-
-import org.jkiss.code.Nullable;
-import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
-
-/**
- * Property source
- */
-public interface DBPPropertySource {
-
- Object getEditableValue();
-
- DBPPropertyDescriptor[] getPropertyDescriptors2();
-
- Object getPropertyValue(@Nullable DBRProgressMonitor monitor, Object id);
-
- boolean isPropertySet(Object id);
-
- boolean isPropertyResettable(Object id);
-
- void resetPropertyValue(@Nullable DBRProgressMonitor monitor, Object id);
-
- void resetPropertyValueToDefault(Object id);
-
- void setPropertyValue(@Nullable DBRProgressMonitor monitor, Object id, Object value);
-
- boolean isDirty(Object id);
-
-}
+/*
+ * DBeaver - Universal Database Manager
+ * Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2)
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+package org.jkiss.dbeaver.model.preferences;
+
+import org.jkiss.code.Nullable;
+import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
+
+/**
+ * Property source
+ */
+public interface DBPPropertySource {
+
+ Object getEditableValue();
+
+ DBPPropertyDescriptor[] getPropertyDescriptors2();
+
+ Object getPropertyValue(@Nullable DBRProgressMonitor monitor, Object id);
+
+ boolean isPropertySet(Object id);
+
+ boolean isPropertyResettable(Object id);
+
+ void resetPropertyValue(@Nullable DBRProgressMonitor monitor, Object id);
+
+ void resetPropertyValueToDefault(Object id);
+
+ void setPropertyValue(@Nullable DBRProgressMonitor monitor, Object id, Object value);
+
+ boolean isDirty(Object id);
+
+}
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java
index f261318cbfaf32ed29e8c0003d2592c5909a835a..8869815683a415831fd983ff32186d4f09933393 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java
@@ -18,7 +18,7 @@
package org.jkiss.dbeaver.model.qm;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import java.util.Collections;
import java.util.List;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java
index 4f4b99e372ca24ea28e333227b46e11588fae84a..82ad80276c2fab2694680188537cc962bc37ffdf 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/SQLSyntaxManager.java
@@ -22,7 +22,7 @@ import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.ModelPreferences;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPIdentifierCase;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.impl.sql.BasicSQLDialect;
import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/format/external/SQLExternalFormatter.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/format/external/SQLExternalFormatter.java
index 88c4f746eeacac368799cd71e6f0f3b25ac2b4b6..d5d47c5bf768dc2a0e49f76fa651eaf7e21b5b19 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/format/external/SQLExternalFormatter.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/sql/format/external/SQLExternalFormatter.java
@@ -22,7 +22,7 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ModelPreferences;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.dbeaver.model.runtime.AbstractJob;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.format.SQLFormatter;
@@ -33,7 +33,6 @@ import org.jkiss.utils.CommonUtils;
import org.jkiss.utils.IOUtils;
import java.io.*;
-import java.util.ArrayList;
import java.util.List;
/**
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/ContentUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/ContentUtils.java
index 777ead4bdb7d928a3733dccbed7541bb7747cac7..1e04a09a6be4cdb6c174d5f1a4f5b8bfcd8cead0 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/ContentUtils.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/ContentUtils.java
@@ -24,7 +24,7 @@ import org.eclipse.core.runtime.IPath;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPlatform;
+import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.data.DBDContent;
import org.jkiss.dbeaver.model.data.DBDContentCached;
import org.jkiss.dbeaver.model.data.DBDContentStorage;
diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/PrefUtils.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/PrefUtils.java
index 0cc5720826ca8275f7a7335c330eeebe8a4c16e6..dc12ade5c72fe343421e583afa8afc001f6a50cb 100644
--- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/PrefUtils.java
+++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/utils/PrefUtils.java
@@ -19,7 +19,7 @@
package org.jkiss.dbeaver.utils;
import org.jkiss.dbeaver.Log;
-import org.jkiss.dbeaver.model.DBPPreferenceStore;
+import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore;
import org.jkiss.utils.CommonUtils;
import java.io.IOException;