diff --git a/application/pivot/common/README.container.md b/application/pivot/common/README.container.md
index 0b2f902..9fc20e2 100644
--- a/application/pivot/common/README.container.md
+++ b/application/pivot/common/README.container.md
@@ -87,8 +87,6 @@ split over several cross-referencing files, point
|---|---|---|
| `DAANSE_CATALOG_RESOURCE` | `/app/catalog/catalog.xmi` | Primary catalog mapping file (EMF XMI with a Catalog root element) |
| `DAANSE_CATALOG_ADDITIONAL_GLOBS` | *(unset)* | Comma separated glob patterns for additional mapping resources |
-| `DAANSE_CONTEXT_NAME` | `daanse` | Name of the OLAP context |
-| `DAANSE_CONTEXT_DESCRIPTION` | `Daanse XMLA Server` | Description of the OLAP context |
| `DAANSE_USE_AGGREGATES` | `false` | Use aggregate tables |
| `DAANSE_XMLA_PATH` | `/xmla` | Servlet pattern of the XMLA endpoint |
| `DAANSE_CORS_ENABLED` | `true` | Register the CORS filter |
diff --git a/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/BasicContextConfigs.java b/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/BasicContextConfigs.java
index 6bd2a8b..55f32de 100644
--- a/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/BasicContextConfigs.java
+++ b/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/BasicContextConfigs.java
@@ -66,9 +66,6 @@ public static Configuration createEnvBasicContext(ConfigurationAdmin ca, String
filter(ServerConstants.PROP_IDENT, ServerConstants.IDENT_MAPPING));
props.put(Constants.BASIC_CONTEXT_REF_NAME_DIALECT_FACTORY + ServerConstants.TARGET_EXT,
filter(DaanseDialectConstants.DIALECT_NAME_PROPERTY, dialectName));
- props.put("name", Env.get(ServerConstants.ENV_CONTEXT_NAME, ServerConstants.DEFAULT_CONTEXT_NAME));
- props.put("description",
- Env.get(ServerConstants.ENV_CONTEXT_DESCRIPTION, ServerConstants.DEFAULT_CONTEXT_DESCRIPTION));
props.put("useAggregates", Env.get(ServerConstants.ENV_USE_AGGREGATES, false));
configuration.update(props);
diff --git a/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/ServerConstants.java b/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/ServerConstants.java
index 012af47..7fefbcc 100644
--- a/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/ServerConstants.java
+++ b/application/pivot/common/src/main/java/org/eclipse/daanse/server/application/pivot/common/ServerConstants.java
@@ -81,8 +81,6 @@ private ServerConstants() {
public static final String ENV_CATALOG_RESOURCE = "DAANSE_CATALOG_RESOURCE";
public static final String ENV_CATALOG_ADDITIONAL_GLOBS = "DAANSE_CATALOG_ADDITIONAL_GLOBS";
- public static final String ENV_CONTEXT_NAME = "DAANSE_CONTEXT_NAME";
- public static final String ENV_CONTEXT_DESCRIPTION = "DAANSE_CONTEXT_DESCRIPTION";
public static final String ENV_USE_AGGREGATES = "DAANSE_USE_AGGREGATES";
public static final String ENV_XMLA_PATH = "DAANSE_XMLA_PATH";
public static final String ENV_CORS_ENABLED = "DAANSE_CORS_ENABLED";
@@ -91,7 +89,5 @@ private ServerConstants() {
public static final String ENV_CORS_ALLOW_CREDENTIALS = "DAANSE_CORS_ALLOW_CREDENTIALS";
public static final String DEFAULT_CATALOG_RESOURCE = "/app/catalog/catalog.xmi";
- public static final String DEFAULT_CONTEXT_NAME = "daanse";
- public static final String DEFAULT_CONTEXT_DESCRIPTION = "Daanse XMLA Server";
public static final String DEFAULT_XMLA_PATH = "/xmla";
}
diff --git a/application/playground/.gitignore b/application/playground/.gitignore
index 6cfd5c7..c039eac 100644
--- a/application/playground/.gitignore
+++ b/application/playground/.gitignore
@@ -3,4 +3,6 @@ log/*
catalog/*
!catalog/.keep
load/*
-!load/.keep
\ No newline at end of file
+!load/.keep
+!load/*.cfg
+!catalog/*.xmi
diff --git a/application/playground/README.md b/application/playground/README.md
index 8a8ea52..d4d18f7 100644
--- a/application/playground/README.md
+++ b/application/playground/README.md
@@ -54,6 +54,41 @@ The playground application source can be found at:
- Java development environment
- Understanding of security implications
+## Default configuration
+
+The `load/` directory is watched by Felix FileInstall (its default directory) and ships a
+working two-database default: one catalog served from **PostgreSQL** and one from
+**Oracle**, both published on the **same XMLA endpoint**.
+
+| File(s) | Purpose |
+|---|---|
+| `daanse.jdbc.datasource.{postgresql,oracle}.DataSource-*.cfg` | one DataSource per database, tagged `daanse.ident=ds-pg` / `ds-ora` |
+| `daanse.jdbc.datasource.pools.hikari.ConnectionPool-*.cfg` | one connection pool per DataSource |
+| `daanse.rolap.mapping.model.provider.EmfMappingProvider-*.cfg` | one mapping per catalog XMI (`catalog/catalog.postgres.xmi`, `catalog/catalog.oracle.xmi`) |
+| `daanse.rolap.core.BasicContext-*.cfg` | one context per catalog: pool + mapping + dialect (`POSTGRESQL` / `ORACLE`) |
+| `daanse.olap.core.BasicContextGroup-main.cfg` | groups both contexts (`context.target=(daanse.ident=ctx-*)`) |
+| `daanse.olap.xmla.connector.OlapXmlaConnector-main.cfg` | XMLA service over the group |
+| `org.eclipse.daanse.xmla.server.whiteboard.servlet.XmlaServlet-main.cfg` | servlet at `/xmla` |
+
+The endpoint is `http://localhost:8090/xmla` (HTTP port from the bndrun). Both catalogs —
+`Playground Postgres` (cube `CubePostgres`) and `Playground Oracle` (cube `CubeOracle`) —
+appear in `DBSCHEMA_CATALOGS` of that one endpoint; each expects a table
+`fact("key","value")` / `FACT("KEY","VALUE")`.
+
+Matching local databases:
+
+```bash
+podman run -d --name playground-pg -e POSTGRES_USER=daanse -e POSTGRES_PASSWORD=daanse \
+ -e POSTGRES_DB=daanse -p 5432:5432 docker.io/library/postgres:17-alpine
+podman run -d --name playground-ora -e ORACLE_PASSWORD=admin -e APP_USER=daanse \
+ -e APP_USER_PASSWORD=daanse -p 1521:1521 docker.io/gvenzl/oracle-free:23-slim
+```
+
+Then create/seed the fact tables (`fact` lowercase in PostgreSQL, `FACT` uppercase in
+Oracle service `FREEPDB1`) and start the server with `./start` (or
+`java -jar target/daanse.playground.jar` from this directory — FileInstall resolves
+`./load` and the mappings resolve `./catalog` relative to the working directory).
+
## Important Notes
⚠️ **Security Warning**: This application should only be used in development environments due to the increased attack surface from the comprehensive component set.
diff --git a/application/playground/catalog/catalog.oracle.xmi b/application/playground/catalog/catalog.oracle.xmi
new file mode 100644
index 0000000..76d61d9
--- /dev/null
+++ b/application/playground/catalog/catalog.oracle.xmi
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/application/playground/catalog/catalog.postgres.xmi b/application/playground/catalog/catalog.postgres.xmi
new file mode 100644
index 0000000..3781953
--- /dev/null
+++ b/application/playground/catalog/catalog.postgres.xmi
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/application/playground/daanse.playground.bndrun b/application/playground/daanse.playground.bndrun
index 18ff681..1755ade 100644
--- a/application/playground/daanse.playground.bndrun
+++ b/application/playground/daanse.playground.bndrun
@@ -17,8 +17,7 @@
-runproperties: \
org.slf4j.simpleLogger.defaultLogLevel=error,\
org.osgi.service.http.port=8090,\
- logback.configurationFile=${.}/logback.xml,\
- daanse.probe.catalog.dir=${.}/catalog
+ logback.configurationFile=${.}/logback.xml
-runpath: \
ch.qos.logback.classic,\
@@ -33,7 +32,12 @@
bnd.identity;id='org.glassfish.hk2.osgi-resource-locator',\
bnd.identity;id='org.apache.felix.metatype',\
bnd.identity;id='org.eclipse.daanse.olap.xmla.connector',\
+ bnd.identity;id='org.eclipse.daanse.olap.xmla.connector.multidimensional',\
+ bnd.identity;id='org.eclipse.daanse.olap.xmla.connector.relational',\
+ bnd.identity;id='org.eclipse.daanse.olap.xmla.connector.relational.oledb',\
bnd.identity;id='org.eclipse.daanse.xmla.server.whiteboard.servlet',\
+ bnd.identity;id='org.eclipse.daanse.xmla.server.auth.roles',\
+ bnd.identity;id='org.eclipse.daanse.xmla.server.auth.dummy',\
bnd.identity;id='ch.qos.logback.classic',\
bnd.identity;id='org.eclipse.daanse.sql.jdbc.impl',\
bnd.identity;id='org.eclipse.daanse.mdx.parser.api',\
@@ -121,6 +125,9 @@
org.eclipse.daanse.olap.spi;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.olap.util.format;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.olap.xmla.connector;version='[0.0.1,0.0.2)',\
+ org.eclipse.daanse.olap.xmla.connector.multidimensional;version='[0.0.1,0.0.2)',\
+ org.eclipse.daanse.olap.xmla.connector.relational;version='[0.0.1,0.0.2)',\
+ org.eclipse.daanse.olap.xmla.connector.relational.oledb;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.rolap.core;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.rolap.mapping.model;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.server.application.playground;version='[0.0.1,0.0.2)',\
@@ -163,6 +170,8 @@
org.eclipse.daanse.xmla.model.soap;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.xmla.model.xmla;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.xmla.server.adapter.emf;version='[0.0.1,0.0.2)',\
+ org.eclipse.daanse.xmla.server.auth.dummy;version='[0.0.1,0.0.2)',\
+ org.eclipse.daanse.xmla.server.auth.roles;version='[0.0.1,0.0.2)',\
org.eclipse.daanse.xmla.server.whiteboard.servlet;version='[0.0.1,0.0.2)',\
org.eclipse.emf.common;version='[2.44.0,2.44.1)',\
org.eclipse.emf.ecore;version='[2.41.0,2.41.1)',\
diff --git a/application/playground/load/daanse.jdbc.datasource.oracle.DataSource-ora.cfg b/application/playground/load/daanse.jdbc.datasource.oracle.DataSource-ora.cfg
new file mode 100644
index 0000000..5c0ddba
--- /dev/null
+++ b/application/playground/load/daanse.jdbc.datasource.oracle.DataSource-ora.cfg
@@ -0,0 +1,6 @@
+daanse.ident = "ds-ora"
+serverName = "localhost"
+portNumber = I"1521"
+serviceName = "FREEPDB1"
+user = "daanse"
+.password = "daanse"
diff --git a/application/playground/load/daanse.jdbc.datasource.pools.hikari.ConnectionPool-ora.cfg b/application/playground/load/daanse.jdbc.datasource.pools.hikari.ConnectionPool-ora.cfg
new file mode 100644
index 0000000..e587a94
--- /dev/null
+++ b/application/playground/load/daanse.jdbc.datasource.pools.hikari.ConnectionPool-ora.cfg
@@ -0,0 +1,3 @@
+daanse.ident = "pool-ora"
+dataSource.target = "(daanse.ident=ds-ora)"
+poolName = "playground-ora"
diff --git a/application/playground/load/daanse.jdbc.datasource.pools.hikari.ConnectionPool-pg.cfg b/application/playground/load/daanse.jdbc.datasource.pools.hikari.ConnectionPool-pg.cfg
new file mode 100644
index 0000000..1c1ff4e
--- /dev/null
+++ b/application/playground/load/daanse.jdbc.datasource.pools.hikari.ConnectionPool-pg.cfg
@@ -0,0 +1,3 @@
+daanse.ident = "pool-pg"
+dataSource.target = "(daanse.ident=ds-pg)"
+poolName = "playground-pg"
diff --git a/application/playground/load/daanse.jdbc.datasource.postgresql.DataSource-pg.cfg b/application/playground/load/daanse.jdbc.datasource.postgresql.DataSource-pg.cfg
new file mode 100644
index 0000000..a14baf3
--- /dev/null
+++ b/application/playground/load/daanse.jdbc.datasource.postgresql.DataSource-pg.cfg
@@ -0,0 +1,8 @@
+daanse.ident = "ds-pg"
+host = "localhost"
+port = i[ \
+ "5432", \
+ ]
+dbname = "daanse"
+user = "daanse"
+.password = "daanse"
diff --git a/application/playground/load/daanse.olap.core.BasicContextGroup-main.cfg b/application/playground/load/daanse.olap.core.BasicContextGroup-main.cfg
new file mode 100644
index 0000000..57dffb1
--- /dev/null
+++ b/application/playground/load/daanse.olap.core.BasicContextGroup-main.cfg
@@ -0,0 +1,2 @@
+daanse.ident = "group-main"
+context.target = "(daanse.ident=ctx-*)"
diff --git a/application/playground/load/daanse.olap.xmla.connector.OlapXmlaConnector-main.cfg b/application/playground/load/daanse.olap.xmla.connector.OlapXmlaConnector-main.cfg
new file mode 100644
index 0000000..cda53ed
--- /dev/null
+++ b/application/playground/load/daanse.olap.xmla.connector.OlapXmlaConnector-main.cfg
@@ -0,0 +1,2 @@
+daanse.ident = "xmla-main"
+contextGroup.target = "(daanse.ident=group-main)"
diff --git a/application/playground/load/daanse.rolap.core.BasicContext-ora.cfg b/application/playground/load/daanse.rolap.core.BasicContext-ora.cfg
new file mode 100644
index 0000000..0c587d8
--- /dev/null
+++ b/application/playground/load/daanse.rolap.core.BasicContext-ora.cfg
@@ -0,0 +1,5 @@
+daanse.ident = "ctx-ora"
+connectionPool.target = "(daanse.ident=pool-ora)"
+catalogMappingSuppier.target = "(daanse.ident=map-ora)"
+dialectFactory.target = "(org.eclipse.daanse.dialect.name=ORACLE)"
+useAggregates = B"false"
diff --git a/application/playground/load/daanse.rolap.core.BasicContext-pg.cfg b/application/playground/load/daanse.rolap.core.BasicContext-pg.cfg
new file mode 100644
index 0000000..2e18a13
--- /dev/null
+++ b/application/playground/load/daanse.rolap.core.BasicContext-pg.cfg
@@ -0,0 +1,5 @@
+daanse.ident = "ctx-pg"
+connectionPool.target = "(daanse.ident=pool-pg)"
+catalogMappingSuppier.target = "(daanse.ident=map-pg)"
+dialectFactory.target = "(org.eclipse.daanse.dialect.name=POSTGRESQL)"
+useAggregates = B"false"
diff --git a/application/playground/load/daanse.rolap.mapping.model.provider.EmfMappingProvider-ora.cfg b/application/playground/load/daanse.rolap.mapping.model.provider.EmfMappingProvider-ora.cfg
new file mode 100644
index 0000000..e88ae36
--- /dev/null
+++ b/application/playground/load/daanse.rolap.mapping.model.provider.EmfMappingProvider-ora.cfg
@@ -0,0 +1,2 @@
+daanse.ident = "map-ora"
+resource.url = "./catalog/catalog.oracle.xmi"
diff --git a/application/playground/load/daanse.rolap.mapping.model.provider.EmfMappingProvider-pg.cfg b/application/playground/load/daanse.rolap.mapping.model.provider.EmfMappingProvider-pg.cfg
new file mode 100644
index 0000000..1902a50
--- /dev/null
+++ b/application/playground/load/daanse.rolap.mapping.model.provider.EmfMappingProvider-pg.cfg
@@ -0,0 +1,2 @@
+daanse.ident = "map-pg"
+resource.url = "./catalog/catalog.postgres.xmi"
diff --git a/application/playground/load/org.eclipse.daanse.xmla.server.whiteboard.servlet.XmlaServlet-main.cfg b/application/playground/load/org.eclipse.daanse.xmla.server.whiteboard.servlet.XmlaServlet-main.cfg
new file mode 100644
index 0000000..255e8f7
--- /dev/null
+++ b/application/playground/load/org.eclipse.daanse.xmla.server.whiteboard.servlet.XmlaServlet-main.cfg
@@ -0,0 +1,2 @@
+osgi.http.whiteboard.servlet.pattern = "/xmla"
+requirePrincipal = B"false"
diff --git a/application/probe/src/main/java/org/eclipse/daanse/server/application/probe/ProbeFileListener.java b/application/probe/src/main/java/org/eclipse/daanse/server/application/probe/ProbeFileListener.java
index d07b35e..1c02d46 100644
--- a/application/probe/src/main/java/org/eclipse/daanse/server/application/probe/ProbeFileListener.java
+++ b/application/probe/src/main/java/org/eclipse/daanse/server/application/probe/ProbeFileListener.java
@@ -227,16 +227,6 @@ private void createContext(Path path, String matcherKey) throws IOException {
props.put(BASIC_CONTEXT_REF_NAME_DIALECT_FACTORY + TARGET_EXT, "(org.eclipse.daanse.dialect.name=DUCKDB)");
props.put(BASIC_CONTEXT_REF_NAME_CATALOG_MAPPING_SUPPLIER + TARGET_EXT, filterOfMatcherKey(matcherKey));
- String catalog_path = path.toString();
- String theDescription = "theDescription for " + catalog_path;
-
- String name = path.toString();
- if (name == null || name.isEmpty()) {
- name = "not_set" + UUID.randomUUID().toString();
- }
- props.put("name", name);
- props.put("description", theDescription);
- props.put("catalog.path", catalog_path);
props.put("useAggregates", true);
props.put(KEY_FILE_CONTEXT_MATCHER, matcherKey);
configContext.update(props);