From 62dc99e9c67e09d90d51449754ffc797a2d54b42 Mon Sep 17 00:00:00 2001 From: Jose Luis Osorno Date: Thu, 17 Jan 2019 11:48:48 +0100 Subject: [PATCH] Documentation - Add middle menu readme files Add README.md files to the middle menu options to fit the requirements of Alfresco Builder Network (ABN) in terms of structure. --- docs/README.md | 8 +++--- docs/advanced-topics/README.md | 9 ++++++ docs/advanced-topics/debugging/README.md | 13 +++++++++ docs/advanced-topics/hot-reloading/README.md | 28 +++++++++++++++++++ .../README.md | 8 ++++++ 5 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 docs/advanced-topics/README.md create mode 100644 docs/advanced-topics/debugging/README.md create mode 100644 docs/advanced-topics/hot-reloading/README.md create mode 100644 docs/setting-up-your-development-environment/README.md diff --git a/docs/README.md b/docs/README.md index 076b08b2..4f72b934 100644 --- a/docs/README.md +++ b/docs/README.md @@ -35,23 +35,23 @@ code into place. * [All-In-One project structure](working-with-generated-projects/structure-aio.md) * [Platform JAR project structure](working-with-generated-projects/structure-platform.md) * [Share JAR project structure](working-with-generated-projects/structure-share.md) -* Setting up your development environment +* [Setting up your development environment](setting-up-your-development-environment/README.md) * [Setting up your development environment using Eclipse](setting-up-your-development-environment/dev-env-eclipse.md) * [Setting up your development environment using Intellij IDEA](setting-up-your-development-environment/dev-env-intellij.md) -* Advanced topics +* [Advanced topics](advanced-topics/README.md) * [Switching Alfresco Content Services and Share versions](advanced-topics/switching-versions.md) * [Working with Enterprise](advanced-topics/working-with-enterprise/README.md) * [How to configure private Alfresco Nexus repository](advanced-topics/working-with-enterprise/enterprise-mvn-repo.md) * [How to configure private Alfresco Docker registry](advanced-topics/working-with-enterprise/enterprise-docker-registry.md) * [How to set up Alfresco Transform Service](advanced-topics/working-with-enterprise/alfresco-transform-service.md) * [Working with AMPs](advanced-topics/amps.md) - * Debugging + * [Debugging](advanced-topics/debugging/README.md) * [Remote debugging using Eclipse](advanced-topics/debugging/debug-eclipse.md) * [Remote debugging using IntelliJ](advanced-topics/debugging/debug-intellij.md) * [Integration testing](advanced-topics/integration-testing/README.md) * [How SDK's integration tests work](advanced-topics/integration-testing/it-working.md) * [How to run SDK's integration tests](advanced-topics/integration-testing/it-running.md) - * Hot reloading + * [Hot reloading](advanced-topics/hot-reloading/README.md) * [How to configure and use JRebel](advanced-topics/hot-reloading/jrebel.md) * [How to configure and use Hotswap Agent](advanced-topics/hot-reloading/hotswap-agent.md) * [Troubleshooting](troubleshooting.md) diff --git a/docs/advanced-topics/README.md b/docs/advanced-topics/README.md new file mode 100644 index 00000000..6c342c0b --- /dev/null +++ b/docs/advanced-topics/README.md @@ -0,0 +1,9 @@ +--- +Title: Advanced topics +Added: v3.0.0 +Last reviewed: 2019-01-17 +--- +# Advanced topics + +This information provides more advanced topics that you might come in contact with when you have been working with an SDK project for a while. We will have a +look at how you can work with AMPs, remote debugging, hot reloading, and more. diff --git a/docs/advanced-topics/debugging/README.md b/docs/advanced-topics/debugging/README.md new file mode 100644 index 00000000..d244ed54 --- /dev/null +++ b/docs/advanced-topics/debugging/README.md @@ -0,0 +1,13 @@ +--- +Title: Debugging +Added: v3.0.0 +Last reviewed: 2019-01-17 +--- +# Debugging + +When developing add-ins, fixing bugs, or changing Alfresco from the source code, it is helpful to debug an instance of Alfresco running on a standard +application server. This section outlines the steps needed to configure Alfresco and Eclipse (or IntelliJ IDEA) to provide a real-time view of the server +and to troubleshoot issues by stepping through the code line by line. + +Here we assume you have already generated an Alfresco project using the Alfresco SDK. If you don't have a project already, follow the steps in +[Getting started with Alfresco SDK 3.0](../../getting-started.md) to learn how to generate it in a few easy steps. diff --git a/docs/advanced-topics/hot-reloading/README.md b/docs/advanced-topics/hot-reloading/README.md new file mode 100644 index 00000000..7423567f --- /dev/null +++ b/docs/advanced-topics/hot-reloading/README.md @@ -0,0 +1,28 @@ +--- +Title: Hot reloading +Added: v3.0.0 +Last reviewed: 2019-01-17 +--- +# Hot reloading + +Hot reloading in a Java project is the ability to avoid the infamous _change > restart and wait > check_ development lifecycle. This allows you to modify +your application's code, and view the changes without having to restart Alfresco Content Services / Alfresco Share. You can potentially gain significant +savings in development time that would otherwise be wasted rebuilding the Docker images and restarting the Docker containers. + +Hot reloading is a well known behaviour in several other languages (C# for example), and the most practical and fast lifecycle like Save&Reload should be +possible. Hot reloading is the key to enabling [Rapid Application Development (RAD)](https://en.wikipedia.org/wiki/Rapid_application_development) and +[Test Driven Development (TDD)](https://en.wikipedia.org/wiki/Test-driven_development). + +Since the Java 1.4 JVM, the Debugger API allowed debuggers to update class bytecode in place, using the same class identity. This meant that all objects +could refer to an updated class and execute new code when their methods were called, preventing the need to reload a container whenever class bytecode was +changed. All modern IDEs support it, including Eclipse, IntelliJ IDEA, and NetBeans. Since Java 5, this functionality has also been available directly to +Java applications through the [Instrumentation API](http://docs.oracle.com/javase/6/docs/technotes/guides/instrumentation/index.html). + +In the Alfresco development lifecycle hot reloading is possible as in every other Java project (and with the same limitations). You can manage a project +created with the Alfresco SDK using hot reloading through two different tools: +* [JRebel](jrebel.md) +* [HotSwapAgent](hotswap-agent.md) + +Both have advantages and disadvantages, so it's up to you to make the right choice for your needs. [JRebel](https://zeroturnaround.com/software/jrebel/) is a +commercial product while [HotSwapAgent](http://hotswapagent.org/index.html) is open source. Both products can reload classes and web resources. However, +JRebel is more powerful than HotSwapAgent and can also reload changes to the Spring XML context files, for example. diff --git a/docs/setting-up-your-development-environment/README.md b/docs/setting-up-your-development-environment/README.md new file mode 100644 index 00000000..5ab34b29 --- /dev/null +++ b/docs/setting-up-your-development-environment/README.md @@ -0,0 +1,8 @@ +--- +Title: Setting up your development environment +Added: v3.0.0 +Last reviewed: 2019-01-17 +--- +# Setting up your development environment + +The Maven Alfresco SDK is designed to work well with [Eclipse](https://www.eclipse.org/) and [IntelliJ IDEA](https://www.jetbrains.com/idea/).