Jello framework

A Jello based application is essentially a web application running on Google Cloud in an App Engine Java container. App Engine invokes your app's Jello servlet classes to handle requests.

You develop your application in Eclipse, using the Google Plugin and the Jello Plugin.

Your application code is analyzed by Jello's annotation processor in design time. This way, you should catch most of the model logic errors before you runs the app.

As a Google Cloud web application, Jello leverages all App Engine services and they are all available to you, including the Local Development Server and the Cloud Platform dashboard.

In runtime, Jello will scan the project's resources to find and register all Jello entities. No additional configuration settings is needed. All you need to do is to define the data entities based on your business domain and deploy them to the cloud.


Create new Jello Entity

You can use Jello » Jello New Entity wizard to generate the entity Java class and set the entity's access privileges.

new entity wizard

Add a new field

You can use Jello » Add new Field wizard to add fields to your entities.

new entity wizard

This section is optional.

You can modify aspects of Jello runtime behavior in the application configuration file:

<project-root> » war » WEB_INF » web.xml or app.yaml

If your project contains the app.yaml file, it will generate the app.xml file.


Application Cache

Read more in Performance guide- Jello cache.


Application search index

Read more in Entity definition guide- search index.


Concurrency control and ETags

More details coming soon


License and REST copyright text

More details coming soon


app.yaml

    # Jello
  - url: /jello/*
    servlet: jello.JelloServlet
    name: Jello
    init_params:
      #jello.cache.active: true
      jello.cache.flushOnDeploy: false
      jello.cache.validTimeSeconds: 3600
      jello.license.key: <jello-license-key>
      jello.copyright.text: <optional-custom-copyright-text>
      jello.search.enabledByDefault: true
      jello.concurrency.serveEtag: true
      jello.concurrency.enforceEtag: false

web.xml

  <servlet>
    <servlet-name>Jello</servlet-name>
    <servlet-class>jello.JelloServlet</servlet-class>
    <init-param>
      <param-name>jello.cache.flushOnDeploy</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>jello.cache.validTimeSeconds</param-name>
      <param-value>3600</param-value>
    </init-param>
    <init-param>
      <param-name>jello.concurrency.enforceEtag</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>jello.concurrency.serveEtag</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>jello.copyright.text</param-name>
      <param-value>optional-custom-copyright-text</param-value>
    </init-param>
    <init-param>
      <param-name>jello.license.key</param-name>
      <param-value>jello-license-key-value</param-value>
    </init-param>
    <init-param>
      <param-name>jello.search.enabledByDefault</param-name>
      <param-value>true</param-value>
    </init-param>
  </servlet>


More details coming soon.

Last updated March 8, 2019.