diff --git a/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseFactory.java b/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseFactory.java index 1eb8a9f82463..a4b27713d7f8 100644 --- a/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseFactory.java +++ b/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseFactory.java @@ -36,10 +36,17 @@ import static org.neo4j.helpers.collection.MapUtil.stringMap; /** - * Creates a {@link org.neo4j.graphdb.GraphDatabaseService}. + * Creates a {@link org.neo4j.graphdb.GraphDatabaseService} with Community Edition features. *

* Use {@link #newEmbeddedDatabase(File)} or * {@link #newEmbeddedDatabaseBuilder(File)} to create a database instance. + *

+ * Note: If you are using the Enterprise Edition of Neo4j in embedded mode, you have to create your + * database with the {@code EnterpriseGraphDatabaseFactory} + * to enable the Enterprise Edition features, or the + * {@code HighlyAvailableGraphDatabaseFactory} for the + * Enterprise and High-Availability features. There is no factory for the Causal Clustering features, because it is + * currently not possible to run a causal cluster in embedded mode. */ public class GraphDatabaseFactory { @@ -115,19 +122,19 @@ protected void configure( GraphDatabaseBuilder builder ) */ @Deprecated protected GraphDatabaseService newDatabase( File storeDir, Map settings, - GraphDatabaseFacadeFactory.Dependencies dependencies ) + GraphDatabaseFacadeFactory.Dependencies dependencies ) { return newDatabase( storeDir, Config.embeddedDefaults( settings ), dependencies ); } protected GraphDatabaseService newEmbeddedDatabase( File storeDir, Config config, - GraphDatabaseFacadeFactory.Dependencies dependencies ) + GraphDatabaseFacadeFactory.Dependencies dependencies ) { return GraphDatabaseFactory.this.newDatabase( storeDir, config, dependencies ); } protected GraphDatabaseService newDatabase( File storeDir, Config config, - GraphDatabaseFacadeFactory.Dependencies dependencies ) + GraphDatabaseFacadeFactory.Dependencies dependencies ) { return new GraphDatabaseFacadeFactory( DatabaseInfo.COMMUNITY, CommunityEditionModule::new ) .newFacade( storeDir, config, dependencies ); diff --git a/community/kernel/src/main/java/org/neo4j/graphdb/factory/package-info.java b/community/kernel/src/main/java/org/neo4j/graphdb/factory/package-info.java index e5b1a50a5bed..1ca6b0f0b938 100644 --- a/community/kernel/src/main/java/org/neo4j/graphdb/factory/package-info.java +++ b/community/kernel/src/main/java/org/neo4j/graphdb/factory/package-info.java @@ -18,6 +18,12 @@ * along with this program. If not, see . */ /** - * Create database instances. + * Factories and builders for creating database instances. + *

+ * Note that your choice of {@link org.neo4j.graphdb.factory.GraphDatabaseFactory} determines what feature sets are + * available to the database instances you create. + * + * @see org.neo4j.graphdb.factory.GraphDatabaseFactory + * @see org.neo4j.graphdb.factory.GraphDatabaseBuilder */ package org.neo4j.graphdb.factory; diff --git a/enterprise/ha/src/main/java/org/neo4j/graphdb/factory/HighlyAvailableGraphDatabaseFactory.java b/enterprise/ha/src/main/java/org/neo4j/graphdb/factory/HighlyAvailableGraphDatabaseFactory.java index 6b166ab1fa29..5316a5894985 100644 --- a/enterprise/ha/src/main/java/org/neo4j/graphdb/factory/HighlyAvailableGraphDatabaseFactory.java +++ b/enterprise/ha/src/main/java/org/neo4j/graphdb/factory/HighlyAvailableGraphDatabaseFactory.java @@ -33,7 +33,9 @@ import static org.neo4j.helpers.collection.MapUtil.stringMap; /** - * Factory for HA Neo4j instances. + * Factory for Neo4j database instances with Enterprise Edition and High-Availability features. + * + * @see org.neo4j.graphdb.factory.GraphDatabaseFactory */ public class HighlyAvailableGraphDatabaseFactory extends GraphDatabaseFactory { diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java index 1a8ef053b34f..29522726a60a 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java @@ -33,7 +33,7 @@ import org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory; /** - * This has all the functionality of an embedded database, with the addition of services + * This has all the functionality of an Enterprise Edition embedded database, with the addition of services * for handling clustering. */ public class HighlyAvailableGraphDatabase extends GraphDatabaseFacade diff --git a/enterprise/kernel/src/main/java/org/neo4j/graphdb/factory/EnterpriseGraphDatabaseFactory.java b/enterprise/kernel/src/main/java/org/neo4j/graphdb/factory/EnterpriseGraphDatabaseFactory.java index 60c933ab1676..5861adff9f2c 100644 --- a/enterprise/kernel/src/main/java/org/neo4j/graphdb/factory/EnterpriseGraphDatabaseFactory.java +++ b/enterprise/kernel/src/main/java/org/neo4j/graphdb/factory/EnterpriseGraphDatabaseFactory.java @@ -22,18 +22,23 @@ import java.io.File; import java.util.Map; -import org.neo4j.graphdb.EnterpriseGraphDatabase; +import org.neo4j.kernel.enterprise.EnterpriseGraphDatabase; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.impl.factory.Edition; import static org.neo4j.helpers.collection.MapUtil.stringMap; +/** + * Factory for Neo4j database instances with Enterprise Edition features. + * + * @see org.neo4j.graphdb.factory.GraphDatabaseFactory + */ public class EnterpriseGraphDatabaseFactory extends GraphDatabaseFactory { @Override protected GraphDatabaseBuilder.DatabaseCreator createDatabaseCreator( final File storeDir, - final GraphDatabaseFactoryState state ) + final GraphDatabaseFactoryState state ) { return new GraphDatabaseBuilder.DatabaseCreator() { diff --git a/enterprise/kernel/src/main/java/org/neo4j/graphdb/EnterpriseGraphDatabase.java b/enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/EnterpriseGraphDatabase.java similarity index 80% rename from enterprise/kernel/src/main/java/org/neo4j/graphdb/EnterpriseGraphDatabase.java rename to enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/EnterpriseGraphDatabase.java index 986521d9bbe8..363b17941be2 100644 --- a/enterprise/kernel/src/main/java/org/neo4j/graphdb/EnterpriseGraphDatabase.java +++ b/enterprise/kernel/src/main/java/org/neo4j/kernel/enterprise/EnterpriseGraphDatabase.java @@ -17,10 +17,9 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package org.neo4j.graphdb; +package org.neo4j.kernel.enterprise; import java.io.File; -import java.util.Map; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.impl.enterprise.EnterpriseEditionModule; @@ -30,13 +29,6 @@ public class EnterpriseGraphDatabase extends GraphDatabaseFacade { - public EnterpriseGraphDatabase( File storeDir, Map params, - GraphDatabaseFacadeFactory.Dependencies dependencies ) - { - new GraphDatabaseFacadeFactory( DatabaseInfo.ENTERPRISE, EnterpriseEditionModule::new ) - .initFacade( storeDir, params, dependencies, this ); - } - public EnterpriseGraphDatabase( File storeDir, Config config, GraphDatabaseFacadeFactory.Dependencies dependencies ) { diff --git a/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/EnterpriseNeoServer.java b/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/EnterpriseNeoServer.java index c08c757c0d6f..216ddbf400bc 100644 --- a/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/EnterpriseNeoServer.java +++ b/enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/EnterpriseNeoServer.java @@ -33,7 +33,7 @@ import org.neo4j.cluster.ClusterSettings; import org.neo4j.cluster.ClusterSettings.Mode; import org.neo4j.dbms.DatabaseManagementSystemSettings; -import org.neo4j.graphdb.EnterpriseGraphDatabase; +import org.neo4j.kernel.enterprise.EnterpriseGraphDatabase; import org.neo4j.helpers.collection.Iterables; import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.ha.HaSettings;