Introduction
Introduction

Introduction / FirstSpirit web application configuration / Individualizing web applications

Individualizing the global FirstSpirit web applications

Table of contents

FirstSpirit builds on the concept of modular extensibility by customers and partners. This means that the FirstSpirit standard functions can be adjusted relatively easily to the specific requirements of the projects in question by means of individual, project-specific enhancements (such as input components, services, applications).

For these individual enhancements both

  • FirstSpirit's global web applications (fs5root, fs5preview, fs5webedit, ...) can be adapted and
  • project-local, configurable instances of the FirstSpirit web applications can be created.

Adapting global web applications is usually much more efficient than using local project instances, especially in a corporate environment with many projects.

See also for global Web applications: Web applications and for local project-specific Web applications: Web components.

Example: ContentCreator

An individual report (and/or an EasyEdit action, JSP tag lib, executable, etc.) is to be added to the ContentCreator. The necessary classes are defined in a module in a web app component and the module is installed on the FirstSpirit Server.

  • ContentCreator as local project instance: A ContentCreator instance that is local to the project must be created for each project that is to use the new functionality (report, JSP tags, etc.) and the application must be configured with the web app component (from the module) (add, configure, deploy).  
    Aside from the amount of work involved, one ContentCreator instance for n projects also means that n instances of the application are stored on the front-end side, which can potentially take up a lot of memory on the front-end server.
  • ContentCreator as global,individualized  web application The new functionality can also be made available server-wide (globally).
    To do this, the desired web app component is simply added and deployed via the FirstSpirit ServerManager in the Server Properties / Web applications area. The added enhancements are then available to all projects on the server (for which no local project ContentCreator instance has been configured). If, for example, a JSP tag lib has been provided via the web app component, the corresponding tags can then be used in all projects. It is no longer necessary to create instances that are local to the project. Instead of n instances, only one instance now needs to be stored on the front-end side.

Further prerequisites

Scope

The scopes attribute, which can be used within the module declaration, provides the values global and project for Web applications (component type web-app), for example:

<web-app scopes="global"> 

<web-app scopes="project">

<web-app scopes="global, project">  

See also Module Definition (→FirstSpirit Online Documentation).

Components can only be added to the global and/or local web applications if the scope is defined accordingly.

For  developers,  web  app  components  differ  according  to  their  scope  with  regard  to  the  information available via the SpecialistsBroker.  Web applications that are local to a project have a WebEnvironment which inherits from the ProjectEnvironment and they receive (via the #getBroker method) a (project-specific) instance of the type SpecialistsBroker.

For global web applications, the WebEnvironment returns a project-independent instance of the type SpecialistsBroker when #getBrokeris called, and therefore returns “null” when #getProject is called.

<module>
  ...
  <components>
   ...
     <web-app scopes="global">
     ...
     </web-app>

  </components>

</module>

See also FirstSpirit developer API, packages

Configuration

For a global web application, the initial configuration can only take place at a global level. However, it is also possible to carry out an additional configuration that is local to a project for global web app components, e.g., via an additional project application which is also part of the module.      

<module>
  ...
  <components>
   ...
     <web-app scopes="global">               
                      ...
        <configurable> MyGlobalAppConfigPanel </configurable>        
     </web-app>

               <project-app>
                      ...
        <configurable> MyProjectAppConfigPanel </configurable>
     </project-app>
             ...
  </components>
</module>

© 2005 - 2020 e-Spirit AG | All rights reserved. | FirstSpirit 2020-07 | Data privacy | Imprint | Contact us