Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
# under the License.
wrapperVersion=3.3.2
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM eclipse-temurin:17-jre-alpine
FROM eclipse-temurin:21-jre-alpine

COPY webapp/target/flow-webapp-*.war /app/flow-webapp.war
COPY target/flow-*.war /app/flow-webapp.war

EXPOSE 8080

Expand Down
29 changes: 28 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,28 @@
# flow
# Flow

Easily create configurations for the Frank!Framework with the Flow Studio and Editor!

## Build from source

Building the project requires Java, Maven, NodeJS, PNPM and Docker installed on your system.

To build the project from source, run this command:

```bash
mvn clean install
```

## Development

To run the application in development mode, you can use the following commands:

1. Start the backend server:
```bash
mvn spring-boot:run
```
2. Start the frontend server:
```bash
cd src/main/frontend
pnpm install
pnpm start
```
2 changes: 0 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
version: ''

services:
flow:
image: frankframework/flow
Expand Down
118 changes: 109 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.3</version>
<version>3.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

Expand All @@ -18,10 +18,20 @@
<description>Graphical editor for the Frank!Framework Configurations</description>

<properties>
<java.version>17</java.version>
<frankframework.version>9.1.0-SNAPSHOT</frankframework.version>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>

<developers>
<developer>
<name>Daan van Maldegem</name>
<email>[email protected]</email>
<organization>Frank!Framework</organization>
<organizationUrl>https://frankframework.org</organizationUrl>
</developer>
</developers>

<dependencies>
<!-- Spring Boot starters -->
<dependency>
Expand Down Expand Up @@ -62,21 +72,111 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<!-- Frank!Framework dependencies -->
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-management-gateway</artifactId>
<version>${frankframework.version}</version>
<groupId>io.github.wimdeblauwe</groupId>
<artifactId>testcontainers-cypress</artifactId>
<version>1.9.1</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencies>

<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<id>pnpm install</id>
<goals>
<goal>exec</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<workingDirectory>src/main/frontend</workingDirectory>
<executable>pnpm</executable>
<arguments>
<argument>i</argument>
<argument>--frozen-lockfile</argument>
</arguments>
<environmentVariables>
<CI>true</CI>
</environmentVariables>
</configuration>
</execution>
<execution>
<id>pnpm build</id>
<goals>
<goal>exec</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<workingDirectory>src/main/frontend</workingDirectory>
<executable>pnpm</executable>
<arguments>
<argument>run</argument>
<argument>build</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-frontend-to-TestClasses</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<resources>
<!-- Copy the Cypress tests and configuration to the test output directory -->
<resource>
<directory>${project.basedir}/src/main/frontend</directory>
<filtering>false</filtering>
<targetPath>e2e</targetPath>
<includes>
<include>tsconfig.json</include>
<include>cypress/**</include>
</includes>
<excludes>
<exclude>cypress/test-results/**</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ interface IdCounter {

export async function getXmlString(filename: string): Promise<string> {
try {
const response = await fetch(`/configurations/${filename}`)
const response = await fetch(`/static-configurations/${filename}`)
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`)
}
Expand Down
45 changes: 45 additions & 0 deletions src/main/frontend/app/routes/projects/projects.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { useEffect, useState } from 'react'

export default function Projects() {
const [message, setMessage] = useState('Loading...')
const [config, setConfig] = useState(null)

useEffect(() => {
// Adjust the URL depending on your setup
fetch('test')
.then((response) => {
if (!response.ok) throw new Error('Network response was not ok')
return response.json()
})
.then((data) => setMessage(data.data))
.catch(() => setMessage('Can not connect to Flow backend...'))

const configNumber = '10'
fetch(`configurations/Config${configNumber}`)
.then((response) => {
if (!response.ok) throw new Error(`Can not find configuration with name: Config${configNumber}`)
return response.json()
})
.then((data) => {
setConfig(data)
})
.catch(() => setConfig(null))
}, [])

return (
<div>
<p>{message}</p>
{config ? (
<ul>
{Object.entries(config).map(([key, value]) => (
<li key={key}>
<strong>{key}:</strong> {value?.toString() ?? 'null'}
</li>
))}
</ul>
) : (
<p>Configuration not found</p>
)}
</div>
)
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
"type": "module",
"scripts": {
"build": "react-router build",
"dev": "react-router dev",
"start": "react-router-serve ./build/server/index.js",
"start": "react-router dev",
"typecheck": "react-router typegen && tsc"
},
"dependencies": {
Expand Down
Loading
Loading