Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions modules/ROOT/pages/extending-neo4j/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,13 @@ Neo4j provides the following methods to extend the standard functionality:
* *Authentication and authorization plugins* extend the Neo4j security framework.
* *Server extensions* enable new surfaces to be created in the HTTP API.

Writing extensions requires the user to be familiar with Java or other JVM programming languages, and to have an environment set up for compiling such code.

//The following topics are:
//
//How to develop and deploy user-defined procedures and functions.
//How to develop and deploy customized authentication and authorization plugins.
//How to customize the analyzer used in a full-text index.
//How to build extensions for the Neo4j HTTP server.
//How to configure the Neo4j server for remote debugging sessions.

[NOTE]
====
The HTTP API is deprecated since Neo4j 5.26.
Instead, the Query API is introduced.
For details, refer to the link:neo4j-docs-base-uri/query-api/current[Query API documentation].
====

Writing extensions requires the user to be familiar with Java or other JVM programming languages, and to have an environment set up for compiling such code.


10 changes: 5 additions & 5 deletions modules/ROOT/pages/extending-neo4j/unmanaged-extensions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ When writing unmanaged extensions, you have greater control over the amount of m
If you keep too much state around, it can lead to more frequent full Garbage Collection and subsequent unresponsiveness by the Neo4j server.

A common way that state can increase, is the creation of JSON objects to represent the result of a query, which is then sent back to your application.
Neo4j's Transactional Cypher HTTP endpoint (see link:{neo4j-docs-base-uri}/http-api/{page-version}/actions[HTTP API Docs -> transactional Cypher endpoint]) streams responses back to the client.
Neo4j's HTTP endpoint (see link:{neo4j-docs-base-uri}/http-api/current/transactions[HTTP API Docs -> Run transactions]) streams responses back to the client.
For example, the following unmanaged extension streams an array of a person's colleagues:

//https://github.com/neo4j/neo4j-documentation/blob/dev/server-examples/src/main/java/org/neo4j/examples/server/unmanaged/ColleaguesResource.java
Expand Down Expand Up @@ -174,7 +174,7 @@ public class ColleaguesResource
}
----

The full source code isfound at:
The full source code is found at:
link:https://github.com/neo4j/neo4j-documentation/blob/{neo4j-documentation-branch}/server-examples/src/main/java/org/neo4j/examples/server/unmanaged/ColleaguesResource.java[ColleaguesResource.java^]

As well as depending on JAX-RS API, this example also uses Jackson -- a Java JSON library.
Expand Down Expand Up @@ -295,7 +295,7 @@ public class ColleaguesCypherExecutionResource
}
----

The full source code isfound at:
The full source code is found at:
link:https://github.com/neo4j/neo4j-documentation/blob/{neo4j-documentation-branch}/server-examples/src/main/java/org/neo4j/examples/server/unmanaged/ColleaguesCypherExecutionResource.java[ColleaguesCypherExecutionResource.java^]

Your `findColleagues` method now responds to `GET` requests at the URI:
Expand Down Expand Up @@ -380,7 +380,7 @@ public void testMyExtensionWithFunctionFixture()
}
----

The full source code of the example isfound at:
The full source code of the example is found at:
link:https://github.com/neo4j/neo4j-documentation/blob/{neo4j-documentation-branch}/neo4j-harness-test/src/test/java/org/neo4j/harness/doc/ExtensionTestingDocIT.java[ExtensionTestingDocIT.java^]


Expand Down Expand Up @@ -426,6 +426,6 @@ public void shouldWorkWithServer()
}
----

The full source code of the example isfound at:
The full source code of the example is found at:
link:https://github.com/neo4j/neo4j-documentation/blob/{neo4j-documentation-branch}/neo4j-harness-test/src/test/java/org/neo4j/harness/doc/JUnitDocIT.java[JUnitDocIT.java^]

5 changes: 1 addition & 4 deletions modules/ROOT/pages/java-embedded/bolt.adoc
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
:description: How to open a Bolt connector to your embedded instance to get GUI administration and other benefits.

:org-neo4j-graphdb-factory-GraphDatabaseFactory: {neo4j-javadocs-base-uri}/org/neo4j/graphdb/factory/GraphDatabaseFactory.html


[[java-embedded-bolt]]
= Bolt connector

This describes how to open a Bolt connector to your embedded instance to get GUI administration and other benefits.
Accessing Neo4j embedded via the Bolt protocol.
Accessing Neo4j embedded via the link:https://neo4j.com/docs/bolt/current/[Bolt protocol].

The Neo4j Browser and the official Neo4j Drivers use the Bolt database protocol to communicate with Neo4j.
By default, Neo4j embedded does not expose a Bolt connector, but you can enable one.
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/java-embedded/cypher-java.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Failing to do so will not properly clean up resources used by the `Result` objec
In case you do not want to iterate over all of the results, make sure you invoke `close()` as soon as you are done, to release the resources tied to the result.
====

The recommended way to handle results is to use a link:http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html[try-with-resources statement^].
The recommended way to handle results is to use the link:https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html[try-with-resources statement^].
This ensures that the result is closed at the end of the statement.

You can also get a list of the columns in the result:
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/java-embedded/property-values.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Setting a property to `NULL` is equivalent to deleting the property.
| java.time.temporal.TemporalAmount | A temporal amount. This captures the difference in time between two instants.
|===

For further details on float/double values, see link:http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.3[Java Language Specification].
For further details on float/double values, see link:https://docs.oracle.com/javase/specs/jls/se17/html/jls-4.html#jls-4.2.3[Java Language Specification].

Note that there are two cases where more than one Java type is mapped to a single Cypher type.
When this happens, type information is lost.
Expand Down
31 changes: 11 additions & 20 deletions modules/ROOT/pages/java-embedded/setup.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ The following examples use the top-level artifact approach.


[NOTE]
.[enterprise-edition]
====
The examples are only valid for Neo4j Community Edition.
To add Neo4j Enterprise Edition as a dependency, please get in contact with link:https://neo4j.com/contact-us/[Neo4j Professional Services^].
Expand Down Expand Up @@ -51,7 +50,7 @@ Where the `artifactId` is found in the <<editions>> table.

=== Eclipse and Maven

For development in link:http://www.eclipse.org[Eclipse^], it is recommended to install the link:http://www.eclipse.org/m2e/[m2e plugin^] and let Maven manage the project build classpath instead.
For development in link:https://www.eclipse.org[Eclipse^], it is recommended to install the link:https://www.eclipse.org/m2e/[m2e plugin^] and let Maven manage the project build classpath instead.
This also adds the possibility to build your project both via the command line with Maven and have a working Eclipse setup for development.


Expand Down Expand Up @@ -287,40 +286,32 @@ JDK tools::
Eclipse::
* Right-click on the project and then go to _Build Path -> Configure Build Path_.
In the dialog, select _Add External JARs_, browse the Neo4j _lib/_ directory, and select all the JAR files.
* Another option is to use link:http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.jdt.doc.user/reference/preferences/java/buildpath/ref-preferences-user-libraries.htm[User Libraries^].
* Another option is to use link:https://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.jdt.doc.user/reference/preferences/java/buildpath/ref-preferences-user-libraries.htm[User Libraries^].
IntelliJ IDEA::
See link:http://www.jetbrains.com/help/idea/2016.1/configuring-project-and-global-libraries.html[Libraries, Global Libraries, and the Configure Library dialog^].
See link:https://www.jetbrains.com/help/idea/library.html[Libraries^].
NetBeans::
* Right-click on the _Libraries_ node of the project, select _Add JAR/Folder_, browse the Neo4j _lib/_ directory and select all the JAR files.
* You can also handle libraries from the project node, see link:http://netbeans.org/kb/docs/java/project-setup.html#projects-classpath[Managing a Project's Classpath^].
* Right-click the _Libraries_ node of the project, select _Properties_, and then _JAR/Folder_, browse the Neo4j _lib/_ directory and select all the JAR files.
* You can also handle libraries from the project node, see link:https://docs.oracle.com/cd/E50453_01/doc.80/e50452/create_japps.htm#CHDFBFAD[Managing the Classpath^].


[[editions]]
== Editions
== Neo4j editions

The following table outlines the available editions and their names for use with dependency management tools.
The Neo4j Community Edition is available on the Maven Central Repository.
Follow the link below for details on dependency configuration with Apache Maven, Apache Buildr, Apache Ivy, Groovy Grape, and Scala SBT.

[TIP]
====
Follow the links in the table for details on dependency configuration with Apache Maven, Apache Buildr, Apache Ivy, Groovy Grape, Grails, and Scala SBT.
====

.Neo4j editions
.Neo4j edition
[cols="<20,<30,<50", options="header"]
|===

| Neo4j Edition
| Neo4j edition
| Dependency
| Description

| Community
| link:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.neo4j%22%20AND%20a%3A%22neo4j%22[org.neo4j:neo4j^]
| link:https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.neo4j%22%20AND%20a%3A%22neo4j%22[org.neo4j:neo4j^]
| A high-performance, fully ACID transactional graph database.

| Enterprise
| link:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.neo4j%22%20AND%20a%3A%22neo4j-enterprise%22[org.neo4j:neo4j-enterprise^]
| Adding advanced monitoring, online backup, and clustering.

|===

Note that the listed dependencies do not contain the implementation, but pull it transitively.
Expand Down
6 changes: 3 additions & 3 deletions modules/ROOT/pages/jmx-metrics.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ server.jvm.additional=-Dcom.sun.management.jmxremote.ssl=false

[IMPORTANT]
====
Although SSL for JMX Remote Management is disabled throughout this document, to configure it based on your requirements, you can follow the instructions in the link:https://docs.oracle.com/en/java/javase/11/management/monitoring-and-management-using-jmx-technology.html[Java SE 11 Monitoring and Management Guide^].
Although SSL for JMX Remote Management is disabled throughout this document, to configure it based on your requirements, you can follow the instructions in the link:https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html[Java SE 17 Monitoring and Management Guide^].
====


Expand All @@ -53,7 +53,7 @@ Although SSL for JMX Remote Management is disabled throughout this document, to
Password authentication is enabled by default in JMX Remote Management.
You can find information about setting up authentication with LDAP and file-based approach in the following sections.

Refer to the link:https://docs.oracle.com/en/java/javase/11/management/monitoring-and-management-using-jmx-technology.html[Java SE 11 Monitoring and Management Guide^] for more options, including configuration steps for SSL client authentication.
Refer to the link:https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html[Java SE 17 Monitoring and Management Guide^] for more options, including configuration steps for SSL client authentication.


[[ldap]]
Expand Down Expand Up @@ -184,7 +184,7 @@ The `<port>` value is configured by the `com.sun.management.jmxremote.port` prop
Besides the MBeans, exposed by the JVM, you also see be default `neo4j.metrics` section in the MBeans tab.
Under that, you have access to all the monitoring information exposed by Neo4j.

For opening JMX to remote monitoring access, please see <<jmx-remote>> and link:https://docs.oracle.com/en/java/javase/11/management/monitoring-and-management-using-jmx-technology.html#GUID-805517EC-2D33-4D61-81D8-4D0FA770D1B8[the JMX documention^].
For opening JMX to remote monitoring access, please see <<jmx-remote>> and link:https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html#GUID-805517EC-2D33-4D61-81D8-4D0FA770D1B8[the JMX documentation^].

.Neo4j MBeans view
image::jconsole-beans1.png[alt="Neo4j MBeans view", width=600]
Expand Down