Commit 62dc99e9 authored by Jose Luis Osorno's avatar Jose Luis Osorno
Browse files

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.
parent ccee83f9
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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)
+9 −0
Original line number Diff line number Diff line
---
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.
+13 −0
Original line number Diff line number Diff line
---
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.
+28 −0
Original line number Diff line number Diff line
---
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.
+8 −0
Original line number Diff line number Diff line
---
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/).