Skip to content

Commit

Permalink
Merge branch 'develop' into IM-256-Export-networks-from-the-k.Explorer
Browse files Browse the repository at this point in the history
  • Loading branch information
inigo-cobian committed Jan 30, 2024
2 parents 1f103f0 + 88e7f28 commit b8bc817
Show file tree
Hide file tree
Showing 21 changed files with 639 additions and 47 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build and test

on:
push:

jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Java setup
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'maven'
- name: Build with maven
run: |
./mvnw -U clean install -DskipTests
./mvnw -pl :klab.ogc test -Dtest="*STAC*"
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ target
/workspace/
**/*.xtendbin
**/.temp-*
**/*._trace
**/*._trace
.mvn/wrapper/maven-wrapper.jar
2 changes: 2 additions & 0 deletions .mvn/maven.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--batch-mode
--no-transfer-progress
18 changes: 18 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
19 changes: 15 additions & 4 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def kmodelers = [
]

pipeline {
agent { label "maven-3-9-5-eclipse-temurin-17"}
agent { label "klab-agent-jdk17"}
options { skipDefaultCheckout(true) }
environment {
VERSION_DATE = sh(
Expand Down Expand Up @@ -49,7 +49,7 @@ pipeline {

env.SNAPSHOT = sh(
returnStdout: true,
script: 'mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate ' +
script: './mvnw org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate ' +
'-Dexpression=project.version -q -DforceStdout ' +
'--batch-mode -U -e -Dsurefire.useFile=false'
).trim()
Expand Down Expand Up @@ -88,8 +88,19 @@ pipeline {
stage('Maven install with jib') {
steps {
withCredentials([usernamePassword(credentialsId: "${env.REGISTRY_CREDENTIALS}", passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
sh 'mvn -ntp -U clean install -DskipTests jib:build -Djib.httpTimeout=60000'
sh 'mvn -ntp -pl :klab.ogc test -Dtest="*STAC*"'
sh './mvnw -U clean install -DskipTests jib:build -Djib.httpTimeout=60000'
sh './mvnw -pl :klab.ogc test -Dtest="*STAC*"'
}
}
}

stage('Maven deploy') {
when {
anyOf { branch 'develop'; branch 'master' }
}
steps {
configFileProvider([configFile(fileId: '1f5f24a2-9839-4194-b2ad-0613279f9fba', variable: 'MAVEN_SETTINGS_XML')]) {
sh './mvnw --settings $MAVEN_SETTINGS_XML deploy -pl :api -DskipTests'
}
}
}
Expand Down
27 changes: 19 additions & 8 deletions Jenkinsfile.withParams
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def kmodelers = [
]

pipeline {
agent { label "mvn-java-agent"}
agent { label "klab-agent-jdk17"}
options { skipDefaultCheckout(true) }
parameters {
string(name: 'BRANCH',
Expand Down Expand Up @@ -51,11 +51,11 @@ pipeline {
returnStdout: true).trim()
MAVEN_OPTS="--illegal-access=permit"
REGISTRY = "registry.integratedmodelling.org"
STAT_CONTAINER = "stat-server-16"
ENGINE_CONTAINER = "engine-server-16"
HUB_CONTAINER = "hub-server-16"
NODE_CONTAINER = "node-server-16"
BASE_CONTAINER = "klab-base-16:bc344fa9a66e93edaa3a2b528a65e7efa2e55a6f"
STAT_CONTAINER = "stat-server-17"
ENGINE_CONTAINER = "engine-server-17"
HUB_CONTAINER = "hub-server-17"
NODE_CONTAINER = "node-server-17"
BASE_CONTAINER = "klab-base-17:04da07762c87f77f2a3c04c880815327f94643c3"
MAIN = "master"
DEVELOP = "develop"
PRODUCTS_GEN = "yes"
Expand Down Expand Up @@ -113,7 +113,7 @@ pipeline {

env.SNAPSHOT = sh(
returnStdout: true,
script: 'mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate ' +
script: './mvnw org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate ' +
'-Dexpression=project.version -q -DforceStdout ' +
'--batch-mode -U -e -Dsurefire.useFile=false'
).trim()
Expand Down Expand Up @@ -159,7 +159,18 @@ pipeline {
stage('Maven install with jib') {
steps {
withCredentials([usernamePassword(credentialsId: "${params.REGISTRY_CREDENTIALS}", passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
sh 'export JAVA_HOME=/opt/java16/openjdk && mvn clean install -U -DskipTests jib:build -Djib.httpTimeout=60000'
sh './mvnw clean install -U -DskipTests jib:build -Djib.httpTimeout=60000'
}
}
}

stage('Maven deploy') {
when {
anyOf { branch 'develop'; branch 'master' }
}
steps {
configFileProvider([configFile(fileId: '1f5f24a2-9839-4194-b2ad-0613279f9fba', variable: 'MAVEN_SETTINGS_XML')]) {
sh './mvnw --settings $MAVEN_SETTINGS_XML deploy -pl :api -DskipTests'
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions adapters/klab.ogc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -107,31 +107,31 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.0</version>
<version>${junit5.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.6.0</version>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.9</version>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,26 @@
Footer (max 1 elemento)
Attributi
Guardando la definizione che usa Quasar di Layout (che è la cosa corrispondente) ci sono 2 cose interessanti che magari verrebbero bene più avanti:
- Un Layout puó essere un container quindi puó passare ad essere pure lui un componente. Nel caso di Quasar, questo fa che le dimensioni facciano riferimento alla página intera o al Panel dove è messo (per maggiori dettagli mi dici). Per noi questo potrebbe essere utile pensando a una view generale che sostituisca l'explorer come ben dicevi tu
Guardando la definizione che usa Quasar di Layout (che la cosa corrispondente) ci sono 2 cose interessanti che magari verrebbero bene pi� avanti:
- Un Layout pu� essere un container quindi pu� passare ad essere pure lui un componente. Nel caso di Quasar, questo fa s� che le dimensioni facciano riferimento alla p�gina intera o al Panel dove messo (per maggiori dettagli mi dici). Per noi questo potrebbe essere utile pensando a una view generale che sostituisca l'explorer come ben dicevi tu
- Usano una serie di lettere per gestire le sovrapposizioni:
Fondamentalmente si gestisce se i pannelli laterali coprono o no l'header e il footer
Panel
Header
Footer
Non so se Header e Footer sono rimasugli di altre implementazioni, pero credo che non sono necessari.
Quasar ha dei componenti specifici però fondamentalmente gestisce dettagli estetici. Un panel messo nella proprietà header di View non penso abbia bisogno di ulteriori dettagli, quindi mi centrerei in Panel
Panel è un contenitore di elementi eterogenei posizionati a seconda di come si definiscono e del layout previsto per il pannello,
Un pannello puó contenere altri pannelli e cosí successivamente
Personalmente credo che tutti i componenti dovrebbero essere contenuti in un pannello e non possano essere lasciati soli, più che altro per essere un po' coerenti
Quasar ha dei componenti specifici per� fondamentalmente gestisce dettagli estetici. Un panel messo nella propriet� header di View non penso abbia bisogno di ulteriori dettagli, quindi mi centrerei in Panel
Panel un contenitore di elementi eterogenei posizionati a seconda di come si definiscono e del layout previsto per il pannello,
Un pannello pu� contenere altri pannelli e cos� successivamente
Personalmente credo che tutti i componenti dovrebbero essere contenuti in un pannello e non possano essere lasciati soli, pi� che altro per essere un po' coerenti
Attributi
visible: visibilità che púo essere legata a una variabile
layout: qualche descrizione sul tipo di layout. Qua ci si puó mettere di tutto, però in un principio con orizzontale, verticale ed indicare se puoi andare a capo dovrebbe essere sufficiente. La storia del a capo è per sapere se si cambia la dimensione degli elementi per starci o quando non ci si sta si va a nuova linea.
Magari si puó anche pensare in un GridLayout o in un Flex più avanti.
visible: visibilit� che p�o essere legata a una variabile
layout: qualche descrizione sul tipo di layout. Qua ci si pu� mettere di tutto, per� in un principio con orizzontale, verticale ed indicare se puoi andare a capo dovrebbe essere sufficiente. La storia del a capo per sapere se si cambia la dimensione degli elementi per starci o quando non ci si sta si va a nuova linea.
Magari si pu� anche pensare in un GridLayout o in un Flex pi� avanti.
Group
Un gruppo credo dovrebbe essere qualcosa di omogeneo per poter gestire elementi come se fossero una unità. È necessario per i radioButton e i checkButton
Un gruppo credo dovrebbe essere qualcosa di omogeneo per poter gestire elementi come se fossero una unit�. � necessario per i radioButton e i checkButton
Attributi
Credo che possono essere gli stessi di un componente:
Expand All @@ -60,13 +60,13 @@
align
width: qui userei o percentuale o cose fisse senza dimensioni specifiche (xs, s, m, etc) e poi lo stile li definisce
Ed in questo momento non mi viene in mente alto
E poi lascerei una serie di attributi come un Map visto che il funzionamento di ogni componente avrà le sue necessita specifiche
E poi lascerei una serie di attributi come un Map visto che il funzionamento di ogni componente avr� le sue necessita specifiche
Alert
Confirm
Questi due li stiamo trattando in una maniera speciale, penso che potranno avere un panel e dentro ci sia quello che vuoi
Sarebbero piú simili ad una View pero con una parte dove metti il panel con il contenuto, e una parte con i bottoni specifici (alert solo ok, confirm ok e cancel)
Oppure un tipo Dialog que puó avere delle implementazioni per alert e confirm
Sarebbero pi� simili ad una View pero con una parte dove metti il panel con il contenuto, e una parte con i bottoni specifici (alert solo ok, confirm ok e cancel)
Oppure un tipo Dialog que pu� avere delle implementazioni per alert e confirm
--------------------------------------------------------------------------------------------------------
* </pre>
*
Expand All @@ -83,6 +83,7 @@ public static class MenuItem {

private String text; // a slash is used to define nested menus
private String id;
private String url;

public String getText() {
return text;
Expand All @@ -96,7 +97,12 @@ public String getId() {
public void setId(String id) {
this.id = id;
}

public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}

private List<ViewPanel> panels = new ArrayList<>();
Expand Down
2 changes: 1 addition & 1 deletion klab.engine/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -901,7 +901,7 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.3</version>
<version>${junit5.version}</version>
<scope>test</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,18 @@ public void onMessage(KlabMessage message, IKActorsBehavior.Scope scope) {
action = new ViewAction(this.component = copyComponent(this.initializedComponent));
break;
default:
action = new ViewAction(this.component = setComponent(mess, scope));
ViewComponent ret = setComponent(mess, scope);
if (ret != null) {
action = new ViewAction(this.component = setComponent(mess, scope));
}
}
if (action != null) {
action.setApplicationId(mess.getAppId());
action.setData(getMetadata(mess.getArguments(), scope));
action.setComponentTag(this.getName());
session.getState().updateView(this.component);
session.getMonitor().send(IMessage.MessageClass.ViewActor, IMessage.Type.ViewAction, action);
}
action.setApplicationId(mess.getAppId());
action.setData(getMetadata(mess.getArguments(), scope));
action.setComponentTag(this.getName());
session.getState().updateView(this.component);
session.getMonitor().send(IMessage.MessageClass.ViewActor, IMessage.Type.ViewAction, action);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ public Layout createLayout(IBehavior behavior, IKActorsBehavior.Scope scope) {
Layout.MenuItem menuItem = new Layout.MenuItem();
menuItem.setId("menu." + action.getId());
menuItem.setText(menu.containsKey("title") ? scope.localize(menu.get("title").toString()) : "Unnamed menu");
menuItem.setUrl(menu.containsKey("url") ? menu.get("url").toString() : null);
ret.getMenu().add(menuItem);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ public void getObservationData(Principal principal, @PathVariable String observa
file = zipFile;
}

IObservation context = session.getObservation(observation);
IObservation context = session.getState().getCurrentContext();
ActivityBuilder stats = ((IRuntimeScope)context.getScope()).getStatistics().forTarget(file, context.getObservable().getDefinition());
try (InputStream input = new FileInputStream(file)) {
response.setContentType(outputFormat);
Expand Down

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions klab.engine/src/main/resources/static/ui/index.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=description content="Web based explorer for k.LAB engine"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><title>k.Explorer</title><link rel=icon href=statics/klab-logo.png type=image/x-icon><link rel=icon type=image/png sizes=32x32 href=statics/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=statics/icons/favicon-16x16.png><link rel=stylesheet type=text/css href=/modeler/shared/report.css><link rel=stylesheet type=text/css href=/modeler/shared/documentation.css><script type=text/javascript src=statics/js/xlsx.full.min.js></script><link as=style href=css/app.614d172d.css rel=preload><link as=script href=js/app.f82436b2.js rel=preload><link as=script href=js/runtime.617f719b.js rel=preload><link as=script href=js/vendor.6dbd30f1.js rel=preload><link href=css/74fd8965.f297b4d2.css rel=prefetch><link href=js/4b4818b8.cd768103.js rel=prefetch><link href=js/74fd8965.2e624603.js rel=prefetch><link href=css/app.614d172d.css rel=stylesheet></head><body><noscript><style>[data-simplebar] {
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=description content="Web based explorer for k.LAB engine"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><title>k.Explorer</title><link rel=icon href=statics/klab-logo.png type=image/x-icon><link rel=icon type=image/png sizes=32x32 href=statics/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=statics/icons/favicon-16x16.png><link rel=stylesheet type=text/css href=/modeler/shared/report.css><link rel=stylesheet type=text/css href=/modeler/shared/documentation.css><script type=text/javascript src=statics/js/xlsx.full.min.js></script><link as=style href=css/app.614d172d.css rel=preload><link as=script href=js/app.f82436b2.js rel=preload><link as=script href=js/runtime.2e1713a8.js rel=preload><link as=script href=js/vendor.6dbd30f1.js rel=preload><link href=css/74fd8965.7c485e34.css rel=prefetch><link href=js/4b4818b8.cd768103.js rel=prefetch><link href=js/74fd8965.2c37b5ae.js rel=prefetch><link href=css/app.614d172d.css rel=stylesheet></head><body><noscript><style>[data-simplebar] {
overflow: auto;
}</style></noscript><div id=q-app></div><script type=text/javascript src=js/app.f82436b2.js></script><script type=text/javascript src=js/runtime.617f719b.js></script><script type=text/javascript src=js/vendor.6dbd30f1.js></script></body></html>
}</style></noscript><div id=q-app></div><script type=text/javascript src=js/app.f82436b2.js></script><script type=text/javascript src=js/runtime.2e1713a8.js></script><script type=text/javascript src=js/vendor.6dbd30f1.js></script></body></html>

Large diffs are not rendered by default.

Loading

0 comments on commit b8bc817

Please sign in to comment.