Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java @ 5540:25c2505df28f
Merged
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Wed, 03 Apr 2013 16:00:21 +0200 |
parents | ac48ab9e1715 |
children | 3e8f7b4bdf20 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java Wed Apr 03 15:59:01 2013 +0200 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java Wed Apr 03 16:00:21 2013 +0200 @@ -29,6 +29,7 @@ import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.backend.SedDBSessionHolder; import de.intevation.flys.backend.SessionHolder; import de.intevation.artifactdatabase.data.StateData; @@ -41,6 +42,12 @@ */ public class Recommendations { + public static final String CONNECTION_USER = "user"; + public static final String CONNECTION_SYSTEM = "system"; + public static final String CONNECTION_SEDDB = "seddb"; + + public static final String DEFAULT_CONNECTION_NAME = CONNECTION_SYSTEM; + private static Logger log = Logger.getLogger(Recommendations.class); private static final boolean DEVELOPMENT_MODE = @@ -198,44 +205,68 @@ final Map<String, Object> parameters, final String userId, final Node result, - Session session + Session systemSession ) { - session.doWork(new Work() { + systemSession.doWork(new Work() { @Override - public void execute(Connection systemConnection) + public void execute(final Connection systemConnection) throws SQLException { - List<Builder.NamedConnection> connections = - new ArrayList<Builder.NamedConnection>(2); - - Connection userConnection = userId != null - ? DBConfig - .getInstance() - .getDBConnection() - .getDataSource() - .getConnection() - : null; - - try { - if (userConnection != null) { - connections.add(new Builder.NamedConnection( - Builder.CONNECTION_USER, userConnection, false)); + SedDBSessionHolder.HOLDER.get().doWork(new Work() { + @Override + public void execute(Connection sedDBConnection) + throws SQLException + { + recommend( + parameters, userId, result, + systemConnection, + sedDBConnection); } - - connections.add(new Builder.NamedConnection( - Builder.CONNECTION_SYSTEM, systemConnection, true)); - - getBuilder().build(connections, result, parameters); - } - finally { - if (userConnection != null) { - userConnection.close(); - } - } + }); } }); } + public void recommend( + Map<String, Object> parameters, + String userId, + Node result, + Connection systemConnection, + Connection seddbConnection + ) throws SQLException + { + List<Builder.NamedConnection> connections = + new ArrayList<Builder.NamedConnection>(3); + + Connection userConnection = userId != null + ? DBConfig + .getInstance() + .getDBConnection() + .getDataSource() + .getConnection() + : null; + + try { + connections.add(new Builder.NamedConnection( + CONNECTION_SYSTEM, systemConnection, true)); + + connections.add(new Builder.NamedConnection( + CONNECTION_SEDDB, seddbConnection, true)); + + if (userConnection != null) { + connections.add(new Builder.NamedConnection( + CONNECTION_USER, userConnection, false)); + } + + + getBuilder().build(connections, result, parameters); + } + finally { + if (userConnection != null) { + userConnection.close(); + } + } + } /** Get singleton instance. */ public static synchronized Recommendations getInstance() {