Example #1
0
  public static void main(String[] args) throws Exception {
    // Bootstrap Zest Runtime
    // Create a Zest Runtime
    qi4j = new Energy4Java();

    // Instantiate the Application Model.
    application =
        qi4j.newApplication(
            new ApplicationAssembler() {
              public ApplicationAssembly assemble(ApplicationAssemblyFactory factory)
                  throws AssemblyException {
                ApplicationAssembly assembly = factory.newApplicationAssembly();
                LayerAssembly runtime = createRuntimeLayer(assembly);
                LayerAssembly designer = createDesignerLayer(assembly);
                LayerAssembly domain = createDomainLayer(assembly);
                LayerAssembly messaging = createMessagingLayer(assembly);
                LayerAssembly persistence = createPersistenceLayer(assembly);

                // declare structure between layers
                domain.uses(messaging);
                domain.uses(persistence);
                designer.uses(persistence);
                designer.uses(domain);
                runtime.uses(domain);

                return assembly;
              }
            });

    // We need to handle shutdown.
    installShutdownHook();

    // Activate the Application Runtime.
    application.activate();
  }
Example #2
0
  public static void someMethod(String[] args) throws Exception {
    {
      // START SNIPPET: application1
      SingletonAssembler qi4j =
          new SingletonAssembler() {
            public void assemble(ModuleAssembly assembly) throws AssemblyException {
              assembly.values(MyStuffValueComposite.class);
            }
          };
      // END SNIPPET: application1
    }
    {
      Assembler customerListEditAssembler = new DummyAssembler();
      Assembler customerEditAssembler = new DummyAssembler();
      Assembler customerSearchAssembler = new DummyAssembler();
      Assembler accountsListEditAssembler = new DummyAssembler();
      Assembler accountsEditAssembler = new DummyAssembler();
      Assembler accountsSearchAssembler = new DummyAssembler();
      Assembler customerDomainAssembler = new DummyAssembler();
      Assembler accountsDomainAssembler = new DummyAssembler();
      // START SNIPPET: application2
      final Assembler[][][] assemblers = {
        { // web layer
          { // Customer Module
            customerListEditAssembler, customerEditAssembler, customerSearchAssembler
          },
          { // Accounts Module
            accountsListEditAssembler, accountsEditAssembler, accountsSearchAssembler
          }
        },
        { // domain layer
          { // Customer Module
            customerDomainAssembler,
          },
          { // Accounts Module
            accountsDomainAssembler,
          }
        }
      };
      Energy4Java qi4j = new Energy4Java();
      Application app =
          qi4j.newApplication(
              new ApplicationAssembler() {

                @Override
                public ApplicationAssembly assemble(ApplicationAssemblyFactory applicationFactory)
                    throws AssemblyException {
                  return applicationFactory.newApplicationAssembly(assemblers);
                }
              });
      app.activate();
      // END SNIPPET: application2
    }
  }
  private ApplicationSPI createNewApplication(ServletContext context) {
    Energy4Java qi4j = new Energy4Java();

    // Try create assembler
    final ApplicationAssembler assembler = createAssembler();
    if (assembler != null) {
      try {
        return qi4j.newApplication(assembler);
      } catch (AssemblyException e) {
        throw new IllegalStateException(e);
      }
    }

    return null;
  }