Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

    • META-INF/services/org.apache.eagle.app.spi.ApplicationProvider: support to dynamically scan and load extensible application provider using java service provider.
  • webapp/app/apps/${APP_TYPE}: if the application has web portal, then it could add more web code under this directory and make sure building as following in pom.xml 

    Code Block
    <build>
       <resources>
           <resource>
               <directory>src/main/webapp/app</directory>
               <targetPath>assets/</targetPath>
           </resource>
           <resource>
               <directory>src/main/resources</directory>
           </resource>
       </resources>
       <testResources>
           <testResource>
               <directory>src/test/resources</directory>
           </testResource>
       </testResources>
    </build>

Test

...

Application

  • Extend org.apache.eagle.app.test.ApplicationTestBase and initialize injector context
  • Access shared service with @Inject
  • Test application lifecycle with related web resource. 
Code Block
languagejava
@Inject private SiteResource siteResource;
@Inject private ApplicationResource applicationResource;


// Create local site
SiteEntity siteEntity = new SiteEntity();
siteEntity.setSiteId("test_site");
siteEntity.setSiteName("Test Site");
siteEntity.setDescription("Test Site for ExampleApplicationProviderTest");
siteResource.createSite(siteEntity);
Assert.assertNotNull(siteEntity.getUuid());


ApplicationOperations.InstallOperation installOperation = new ApplicationOperations.InstallOperation("test_site", "EXAMPLE_APPLICATION", ApplicationEntity.Mode.LOCAL);
installOperation.setConfiguration(getConf());
// Install application
ApplicationEntity applicationEntity = applicationResource.installApplication(installOperation).getData();
// Start application
applicationResource.startApplication(new ApplicationOperations.StartOperation(applicationEntity.getUuid()));
// Stop application
applicationResource.stopApplication(new ApplicationOperations.StopOperation(applicationEntity.getUuid()));
// Uninstall application
applicationResource.uninstallApplication(new ApplicationOperations.UninstallOperation(applicationEntity.getUuid()));
try {
   applicationResource.getApplicationEntityByUUID(applicationEntity.getUuid());
   Assert.fail("Application instance (UUID: " + applicationEntity.getUuid() + ") should have been uninstalled");
} catch (Exception ex) {
   // Expected exception
}

...

Management & REST API

ApplicationProviderSPILoader

...