|
16 | 16 | package com.arcadedb.query; |
17 | 17 |
|
18 | 18 | import com.arcadedb.database.DatabaseInternal; |
| 19 | +import com.arcadedb.log.LogManager; |
19 | 20 | import com.arcadedb.query.sql.SQLQueryEngine; |
20 | 21 |
|
21 | 22 | import java.util.*; |
| 23 | +import java.util.logging.*; |
22 | 24 |
|
23 | 25 | public class QueryEngineManager { |
24 | 26 | private final Map<String, QueryEngine.QueryEngineFactory> implementations = new HashMap<>(); |
25 | 27 |
|
26 | 28 | public QueryEngineManager() { |
27 | | - |
| 29 | + // REGISTER QUERY ENGINES IF AVAILABLE ON CLASSPATH AT RUN-TIME |
28 | 30 | register(new SQLQueryEngine.SQLQueryEngineFactory()); |
29 | | - try { |
30 | | - QueryEngine.QueryEngineFactory engineFactory = (QueryEngine.QueryEngineFactory) Class.forName("com.arcadedb.gremlin.query.GremlinQueryEngineFactory") |
31 | | - .getConstructor().newInstance(); |
32 | | - register(engineFactory); |
33 | | - } catch (Exception e) { |
34 | | -// LogManager.instance().log(this, Level.SEVERE, "Unable to register engine", e); |
35 | | - } |
36 | | - try { |
37 | | - QueryEngine.QueryEngineFactory engineFactory = (QueryEngine.QueryEngineFactory) Class.forName("com.arcadedb.gremlin.query.CypherQueryEngineFactory") |
38 | | - .getConstructor().newInstance(); |
39 | | - register(engineFactory); |
40 | | - } catch (Exception e) { |
41 | | -// LogManager.instance().log(this, Level.SEVERE, "Unable to register engine", e); |
42 | | - } |
43 | | - try { |
44 | | - QueryEngine.QueryEngineFactory engineFactory = (QueryEngine.QueryEngineFactory) Class.forName("com.arcadedb.mongo.query.MongoQueryEngineFactory") |
45 | | - .getConstructor().newInstance(); |
46 | | - register(engineFactory); |
47 | | - } catch (Exception e) { |
48 | | -// LogManager.instance().log(this, Level.SEVERE, "Unable to register engine", e); |
49 | | - } |
50 | 31 |
|
| 32 | + register("com.arcadedb.gremlin.query.GremlinQueryEngineFactory"); |
| 33 | + register("com.arcadedb.gremlin.query.CypherQueryEngineFactory"); |
| 34 | + register("com.arcadedb.mongo.query.MongoQueryEngineFactory"); |
| 35 | + register("com.arcadedb.graphql.query.GraphQLQueryEngineFactory"); |
| 36 | + } |
| 37 | + |
| 38 | + public void register(final String className) { |
51 | 39 | try { |
52 | | - QueryEngine.QueryEngineFactory engineFactory = (QueryEngine.QueryEngineFactory) Class.forName("com.arcadedb.graphql.query.GraphQLQueryEngineFactory") |
53 | | - .getConstructor().newInstance(); |
54 | | - register(engineFactory); |
| 40 | + register((QueryEngine.QueryEngineFactory) Class.forName(className).getConstructor().newInstance()); |
55 | 41 | } catch (Exception e) { |
56 | | -// LogManager.instance().log(this, Level.SEVERE, "Unable to register engine", e); |
| 42 | + LogManager.instance().log(this, Level.FINE, "Unable to register engine '%s' (%s)", className, e.getMessage()); |
57 | 43 | } |
58 | 44 | } |
59 | 45 |
|
|
0 commit comments