From f1482f1d27398fbb60ad9efb9be5591dcb160795 Mon Sep 17 00:00:00 2001 From: Alexander Fedorov Date: Sun, 7 Jan 2018 17:53:13 +0300 Subject: [PATCH] #2556 remove SESSION_INFO extends DBGSessionInfo from template Former-commit-id: db1b56b8ffc773d72ef1c961eef312ce6d028ae4 --- .../dbeaver/debug/DBGBaseController.java | 10 +++---- .../jkiss/dbeaver/debug/DBGController.java | 11 +++---- .../org/jkiss/dbeaver/debug/DBGSession.java | 5 ++-- .../dbeaver/debug/DBGSessionManager.java | 6 ++-- .../internal/PostgreDebugController.java | 4 +-- .../debug/internal/console/Debugger.java | 17 +++++++---- .../internal/impl/PostgreDebugSession.java | 30 ++++++++++++------- .../impl/PostgreDebugSessionInfo.java | 14 +++++++++ .../impl/PostgreDebugSessionManager.java | 6 ++-- 9 files changed, 65 insertions(+), 38 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGBaseController.java b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGBaseController.java index f9e8db8baa..1fec656ca5 100644 --- a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGBaseController.java +++ b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGBaseController.java @@ -40,7 +40,7 @@ public abstract class DBGBaseController implements DBGController { } @Override - public DBGSession connect(DBRProgressMonitor monitor) throws DBGException { + public DBGSession connect(DBRProgressMonitor monitor) throws DBGException { DBPDataSource dataSource = dataSourceContainer.getDataSource(); if (!dataSourceContainer.isConnected()) { throw new DBGException("Not connected to database"); @@ -55,22 +55,22 @@ public abstract class DBGBaseController implements DBGController { } } - protected abstract DBGSession createSession(DBRProgressMonitor monitor, DBPDataSource dataSource) throws DBGException; + protected abstract DBGSession createSession(DBRProgressMonitor monitor, DBPDataSource dataSource) throws DBGException; @Override - public void resume(DBRProgressMonitor monitor, DBGSession session) throws DBGException { + public void resume(DBRProgressMonitor monitor, DBGSession session) throws DBGException { // TODO Auto-generated method stub } @Override - public void suspend(DBRProgressMonitor monitor, DBGSession session) throws DBGException { + public void suspend(DBRProgressMonitor monitor, DBGSession session) throws DBGException { // TODO Auto-generated method stub } @Override - public void terminate(DBRProgressMonitor monitor, DBGSession session) throws DBGException { + public void terminate(DBRProgressMonitor monitor, DBGSession session) throws DBGException { } diff --git a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGController.java b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGController.java index b6d1ff6778..898c26ab0f 100644 --- a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGController.java +++ b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGController.java @@ -17,23 +17,20 @@ */ package org.jkiss.dbeaver.debug; -import java.util.Map; - import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import org.jkiss.dbeaver.registry.DataSourceDescriptor; /** * This interface is expected to be used in synch manner */ public interface DBGController { - DBGSession connect(DBRProgressMonitor monitor) throws DBGException; + DBGSession connect(DBRProgressMonitor monitor) throws DBGException; - void resume(DBRProgressMonitor monitor, DBGSession session) throws DBGException; + void resume(DBRProgressMonitor monitor, DBGSession session) throws DBGException; - void suspend(DBRProgressMonitor monitor, DBGSession session) throws DBGException; + void suspend(DBRProgressMonitor monitor, DBGSession session) throws DBGException; - void terminate(DBRProgressMonitor monitor, DBGSession session) throws DBGException; + void terminate(DBRProgressMonitor monitor, DBGSession session) throws DBGException; void dispose() throws DBGException; diff --git a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSession.java b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSession.java index d1d8cb9c18..1062fa1e30 100644 --- a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSession.java +++ b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSession.java @@ -19,10 +19,11 @@ package org.jkiss.dbeaver.debug; import java.util.List; +import java.util.Map; -public interface DBGSession { +public interface DBGSession { - SESSION_INFO getSessionInfo(); + Map getSessionInfo(); String getTitle(); diff --git a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSessionManager.java b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSessionManager.java index 1fcb370933..a9b28f818c 100644 --- a/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSessionManager.java +++ b/plugins/org.jkiss.dbeaver.debug.core/src/org/jkiss/dbeaver/debug/DBGSessionManager.java @@ -27,13 +27,13 @@ public interface DBGSessionManager { List getSessions() throws DBGException; - DBGSession getDebugSession(Object id) throws DBGException; + DBGSession getDebugSession(Object id) throws DBGException; - List> getDebugSessions() throws DBGException; + List> getDebugSessions() throws DBGException; void terminateSession(Object id); - DBGSession createDebugSession(DBCExecutionContext connection) throws DBGException; + DBGSession createDebugSession(DBCExecutionContext connection) throws DBGException; boolean isSessionExists(Object id); diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/PostgreDebugController.java b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/PostgreDebugController.java index e8c88c7c9d..b97029e369 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/PostgreDebugController.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/PostgreDebugController.java @@ -48,11 +48,11 @@ public class PostgreDebugController extends DBGBaseController { } @Override - protected DBGSession createSession(DBRProgressMonitor monitor, DBPDataSource dataSource) throws DBGException { + protected DBGSession createSession(DBRProgressMonitor monitor, DBPDataSource dataSource) throws DBGException { PostgreDebugSessionManager sessionManager = getSessionManager(monitor); try { JDBCExecutionContext sessionContext = (JDBCExecutionContext) getDataSourceContainer().getDataSource().openIsolatedContext(monitor, "Debug session"); - return this.sessionManager.createDebugSession(sessionContext); + return sessionManager.createDebugSession(sessionContext); } catch (DBException e) { throw new DBGException("Can't initiate debug session", e); } diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/console/Debugger.java b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/console/Debugger.java index db42f322bc..6b0d36e739 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/console/Debugger.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/console/Debugger.java @@ -27,8 +27,13 @@ import org.jkiss.dbeaver.debug.DBGException; import org.jkiss.dbeaver.debug.DBGSession; import org.jkiss.dbeaver.debug.DBGStackFrame; import org.jkiss.dbeaver.debug.DBGVariable; -import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.*; -import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugBreakpoint; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugBreakpointProperties; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugObject; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugSession; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugSessionInfo; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugSessionManager; +import org.jkiss.dbeaver.ext.postgresql.debug.internal.impl.PostgreDebugVariable; @SuppressWarnings("nls") public class Debugger { @@ -206,7 +211,7 @@ public class Debugger { PostgreDebugSession debugSession = null; - List> sessions = pgDbgManager.getDebugSessions(); + List> sessions = pgDbgManager.getDebugSessions(); Scanner scArg; @@ -220,7 +225,7 @@ public class Debugger { int sessNo = 1; - for (DBGSession s : sessions) { + for (DBGSession s : sessions) { System.out.println(String.format(" (%d) %s", sessNo++, s.toString())); } @@ -333,7 +338,7 @@ public class Debugger { break; } - pgDbgManager.terminateSession(debugSessionC.getSessionInfo().getPid()); + pgDbgManager.terminateSession(debugSessionC.getSessionId()); System.out.println("Session closed"); @@ -657,7 +662,7 @@ public class Debugger { System.out.println("no debug sessions"); break; } - for (DBGSession s : pgDbgManager.getDebugSessions()) { + for (DBGSession s : pgDbgManager.getDebugSessions()) { System.out.println(s); } diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSession.java b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSession.java index f6223fbb66..0d6c6a4207 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSession.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSession.java @@ -18,21 +18,31 @@ package org.jkiss.dbeaver.ext.postgresql.debug.internal.impl; -import org.jkiss.dbeaver.Log; -import org.jkiss.dbeaver.debug.*; -import org.jkiss.dbeaver.model.exec.DBCExecutionContext; -import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext; -import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; - -import java.sql.*; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.jkiss.dbeaver.Log; +import org.jkiss.dbeaver.debug.DBGBreakpoint; +import org.jkiss.dbeaver.debug.DBGBreakpointProperties; +import org.jkiss.dbeaver.debug.DBGException; +import org.jkiss.dbeaver.debug.DBGSession; +import org.jkiss.dbeaver.debug.DBGStackFrame; +import org.jkiss.dbeaver.debug.DBGVariable; +import org.jkiss.dbeaver.model.exec.DBCExecutionContext; +import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext; +import org.jkiss.dbeaver.model.runtime.VoidProgressMonitor; + @SuppressWarnings("nls") -public class PostgreDebugSession implements DBGSession { +public class PostgreDebugSession implements DBGSession { private static final Log log = Log.getLog(PostgreDebugSession.class); @@ -140,9 +150,9 @@ public class PostgreDebugSession implements DBGSession getSessionInfo() { - return sessionDebugInfo; + return sessionDebugInfo.toMap(); } @Override diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionInfo.java b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionInfo.java index 15743e022f..d8ddd6eba6 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionInfo.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionInfo.java @@ -18,6 +18,9 @@ package org.jkiss.dbeaver.ext.postgresql.debug.internal.impl; +import java.util.HashMap; +import java.util.Map; + import org.jkiss.dbeaver.debug.DBGSessionInfo; @SuppressWarnings("nls") @@ -72,4 +75,15 @@ public class PostgreDebugSessionInfo implements DBGSessionInfo { + state + ", query: " + query.replace('\n', '\\'); } + public Map toMap() { + //FIXME: declare constants elsewhere, it is the part of metadata + Map map = new HashMap(); + map.put("pid", pid); + map.put("user", user); + map.put("application", application); + map.put("state", state); + map.put("query", query); + return map; + } + } diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionManager.java b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionManager.java index 1a79dfe220..e581ef0e4b 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionManager.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql.debug.core/src/org/jkiss/dbeaver/ext/postgresql/debug/internal/impl/PostgreDebugSessionManager.java @@ -131,7 +131,7 @@ public class PostgreDebugSessionManager implements DBGSessionManager { } @Override - public DBGSession getDebugSession(Object id) + public DBGSession getDebugSession(Object id) throws DBGException { return sessions.get(id); } @@ -174,8 +174,8 @@ public class PostgreDebugSessionManager implements DBGSessionManager { } @Override - public List> getDebugSessions() throws DBGException { - return new ArrayList>(sessions.values()); + public List> getDebugSessions() throws DBGException { + return new ArrayList>(sessions.values()); } @Override -- GitLab