Skip to main content

Project Structure

The sample project (linked below) shows one example of setting up a custom extension project. The tree view looks something like this:

Sample Project Structure


โ”œโ”€โ”€ pom.xml
โ”œโ”€โ”€ readme.md
โ””โ”€โ”€ src
โ”œโ”€โ”€ main
โ”‚ โ”œโ”€โ”€ java
โ”‚ โ”‚ โ””โ”€โ”€ com
โ”‚ โ”‚ โ””โ”€โ”€ simflofy
โ”‚ โ”‚ โ””โ”€โ”€ sample
โ”‚ โ”‚ โ””โ”€โ”€ SampleTask.java
โ”‚ โ””โ”€โ”€ resources
โ”‚ โ””โ”€โ”€ i18
โ”‚ โ””โ”€โ”€ sample-task_en.properties
โ””โ”€โ”€ test
โ””โ”€โ”€ java

The primary work being done is in a single Java class, SampleTask.java. This class will define methods for setting up, running, and tearing down the processor. Optionally, you can create an i18n resource file to define labels for internationalization.

If you have access to Simflofy's nexus server (request access via support ticket) you will be able to add the maven dependencies to your pom. Otherwise, you can grab the necessary jars from your version of Simflofy and add them as external dependencies.

Tasks should be compiled against the version of Simflofy they will run in. Typically, if a task requires the API of a specific connector, the task will be packaged with that connector. Once compiled and added to a jar, the jar can be loaded through the WEB-INF/lib directory in tomcat or a shared loader space.


Package Name

Make sure your package name starts with com.simflofy. For example, you might set your custom package name as com.simflofy.custom.companyName. This will ensure that your components are loaded by Spring.


Dependencies

Processor dependencies will vary according to the work being done, but there are some standards for tasks. Notably, all tasks will need require the following module dependencies for compilation:

  • simflofy-data (ie simflofy-data-3.0.1-SNAPSHOT.jar)
  • simflofy-tasks-core
  • simflome-core

These jar files can be found in the war for your version of Simflofy or can be added with a build tool like maven.

Nexus Repo Access

If you need access to Simflofy's nexus server, open a support ticket in Launch.