• Effective knowledge elicitation, retention, and dissemination:
    • Capturing of knowledge in documented models.
    • Web-based documentation system serving models documentation and visualizations.
  • Working at a high level of abstraction by leveraging model-driven development.
  • Elimination of repetitive tasks through code generation and metadata-driven logic.

Target audience

A full stack T-shaped Java developer, an innovator, leveraging visual and declarative techniques provided by Eclipse and Nasdanika tools to collaborate with and delegate to other technologists, not necessarily developers, and technically minded business people to test ideas and build prototypes and applications together.

Visual/declarative approach to software development heightens the level of abstraction and reduces the amount of hand-coding, sometimes just to a few lines of code or no code in simple cases. By doing so it increases the pool of developers, the speed of application and innovation delivery, and the rate of success because people build applications for themselves and their teams and as such have a good understanding of the requirements.


  • HTML - Java bindings for HTML, Bootstrap, Font Awesome, KnockoutJS and AngularJS. This bundle provides a fluent API for building HTML/Bootstrap code. It allows the developer to stay in Java IDE and leverage code assist and other features of Eclipse IDE and Java language. For example, this bundle makes it easy to build “polymorphic Web UI’s” where base UI is built by the foundation classes and customized as needed by sub-classes.
  • Foundation Server - An Equinox/OSGi-based framework for domain-driven development of web applications. Server contains a number of bundles some of them are listed below.
    • CDO - EMF CDO Model Repositiory provides transparent persistence for EMF Ecore models, i.e. all you need to persist a model is to generate CDO code from it, CDO takes care of the rest. Nasdanika CDO bundles provide several OSGi components for building CDO applications and several CDO contexts.
      • Security - provides classes and interfaces for implementing application-level security.
      • Web - CDO Web provides contexts which merge HTTP request context with CDO View or Transaction context, so requests are executed in a context of CDO view/transaction with security checks and read or write locks applied. This bundle also contains routes for dispatching HTTP requests to specific objects in the repository, i.e. repository objects can have their unique base URL and a number of sub-urls for different operations on the object.
        • Doc - Documentation bundle serves CDO models and OSGi components documentation including visualizations of CDO models as UML class diagrams and OSGi components wiring as component diagrams. With this bundle you can show your stakeholders how your system actually works. This bundle also serves hand-crafted documentation, user stories models documentation with visualizations as use case and activity diagrams, and WebTest test results with slideshows of captured screenshots, so people can explore different flows in the system.
    • Web - this bundle contains the Nasdanika HTTP handling framework, which is buit on the Servlet API and uses the concept of routes (inpspired by ExpressJS. There are three types of routes - root routes, object routes matching object class and executed in the context of an object, and EObject routes matching EClass name and namespace URI and executed in the context of EObject and, typically, CDOView or CDOTransaction.
  • Config - provides a model and an editor for creating hierarchical configurations.

  • Codegen - Code generation Ecore/CDO model and editor. The model provides classes which can generate Eclipse project, file, Java compilation unit (with merging of generated code with existing), etc.
  • Codegen Ecore - Code generation from EMF Ecore models. The Nasdanika Ecore code generation editor allows to select generation targets and then select model elements for which the code should be generated. E.g. you may have a model with dozens of classes and hundreds of features and operations, but generate Web UI classes just for a couple of classes and a dozen of features.
  • Help provides:

    • The primary toc for other Nasdanika help toc’s to link to.
    • Markdown content producer which converts intercepts *.md.html help resource requests, finds corresponding *.md files and converts them to HTML on the fly.
    • Markdown processor extensions.
  • Docgen - Documentation generation framework.
  • Docgen Ecore - Documentation generator for Ecore models - static HTML and Eclipse help.
  • Presentation - features classes and extension points related to the Eclipse UI presentation such as SWT, JFace, and EMF editors.


Composite repository


Reference implementations

  • Bank - A simple enough bank domain model to use for demonstration purposes in different Nasdanika products.


This sections outlines ideas for future Nasdanika projects. Some of those ideas may be already implemented elsewhere and additional research is required before proceeding with implementations. Shall you be aware of such an implementation - drop us a line. If you’d like to implement some of the below ideas - we can probably collaborate on this!

  • Maven classloader service - construct a classloader for a Maven artifact version, load a class, run it - lambda-like execution in OSGi environment.
  • Dynamic bundles - similar to the above but using bundles and P2.
  • EMF/CD - Store Java objects as a graph of EMF/CDO objects.
  • Stored functions and proxies - Store functions as EMF/CDO objects. Provide support of bind(arguments) to compose functions.
  • Stored promises - Store promises as EMF/CDO objects. Promises provide then() methods which allow to build asynchronous long-running processes using Java concepts and API’s.
  • Human as a service - “Invoke” humans in the same way as you invoke asynchronous Java methods.