Simple and fast Content mapping for Sling and AEM™

NEBA provides a well-documented and simple set of annotations to map JCR Resources to POJOs. Developed for high demand scenarios, NEBA features impeccable performance and ships with the right tools to keep your Sling or AEM™ deployment fast.

Simple and fast

Create models for resources using just a single annotation and enjoy NEBA's outstanding mapping performance.

Learn about resource models

Ready in seconds

Available as a single CRX package or delivery OSGi bundle, NEBA is installed in seconds without the need for any additional configuration.

Download and get started

Open Source and free

NEBA is free and 100% open source, licensed under the Apache License.

Fork it on Github

Releases

NEBA 5.2.3 current

NEBA 5.2.3 ships Spring framework updates and fixes for the MVC integration in AEM 6.5.18+

Read more

NEBA 5.2.2

NEBA 5.2.2 ships Spring framework updates and fixes for the log viewer

Read more

NEBA 5.2.1

NEBA 5.2.1 ships Spring framework updates for CVE-2022-22950 and CVE-2022-22965

Read more

Features

Resource models

POJOs annotated with @ResourceModel represent specific resource types. Whenever a suitable resource is adapted to this model - or any of it's interfaces or super classes - the properties of the resource are automatically injected into the model.

@ResourceModel(types = "sling/resource/type")
public class MyModel {
    @Inject
    private SomeService service;

    private String slingProperty;
}

Spring integration

The optional Spring integration supports all Spring MVC features - including first-class support for Sling specific request parameters such as the Resource resolver. For an in-depth documentation of the Spring MVC support, see how NEBA supports Spring MVC and Spring's MVC documentation.

@Controller
public class MyController {
@RequestMapping("/something")
@ResponseBody
public String handle(@RequestParam String param) {
    return "redirect:/success.html";
}

Realtime model insights

The resource model statistics console allows exploring the performance of resource models in real time, directly on the system.

The NEBA model statistics console allows exploring real-time performance and meta data for all models

Lazy loading

NEBA supports Lazy-Loading repository data, transparently and simple, to allow building high speed applications - regardless of the amount of repository content.

@ResourceModel(types = "sling/resource/type")
public class MyModel {
    @Reference
    private Lazy<Page> referencedPage;

    @Children
    // Collections are lazy by default
    private List<CarouselEntries> entries;

    public Optional<PageContent> getPageContent() {
        return referencedPage.map(Page::getContent).asOptional();
    }
}

Keep track of your models

The resource model registry allows exploring the registered models and their relation to the resource types to which they apply, as well as the types to which they can be adapted.

The NEBA model registry lists and links all available models

Monitoring logfiles

To let engineering analyze issues quickly, NEBA includes a Sling web console extension that allows viewing, tailing and downloading log files - including error detection. Serial access to the machine running your instance is not required - authenticated access to the system does suffice.

The NEBA log viewer allows following, analyzing and downloading logfiles of AEM or Sling instances