From 32cbaf8d15ea9e39467596509a23b907cf07f0cc Mon Sep 17 00:00:00 2001 From: vitawrap <thevitawrap@gmail.com> Date: Wed, 10 May 2023 12:10:16 +0200 Subject: [PATCH] JNI: Projet IntelliJ --- Makefile | 2 +- ...{Scheduling.h => application_Scheduling.h} | 0 java/.vscode/launch.json | 19 -- java/.vscode/settings.json | 17 - java/app/.gitignore | 38 +++ java/app/.idea/.gitignore | 8 + java/app/.idea/encodings.xml | 7 + java/app/.idea/misc.xml | 14 + java/app/.idea/uiDesigner.xml | 124 +++++++ java/app/.idea/vcs.xml | 6 + java/app/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 58727 bytes .../app/.mvn/wrapper/maven-wrapper.properties | 2 + java/app/mvnw | 316 ++++++++++++++++++ java/app/mvnw.cmd | 188 +++++++++++ java/app/pom.xml | 76 +++++ .../src/main/java/application/ProjetApp.java | 23 ++ .../java/application/ProjetController.java | 33 ++ .../main/java}/application/Scheduling.java | 3 +- java/app/src/main/java/module-info.java | 8 + .../resources/application}/ProjetView.fxml | 2 +- java/application/App.java | 27 -- java/bin/App.class | Bin 1484 -> 0 bytes java/bin/Scheduling.class | Bin 322 -> 0 bytes ...{Scheduling.c => application_Scheduling.c} | 4 +- 24 files changed, 848 insertions(+), 69 deletions(-) rename include/{Scheduling.h => application_Scheduling.h} (100%) delete mode 100644 java/.vscode/launch.json delete mode 100644 java/.vscode/settings.json create mode 100644 java/app/.gitignore create mode 100644 java/app/.idea/.gitignore create mode 100644 java/app/.idea/encodings.xml create mode 100644 java/app/.idea/misc.xml create mode 100644 java/app/.idea/uiDesigner.xml create mode 100644 java/app/.idea/vcs.xml create mode 100644 java/app/.mvn/wrapper/maven-wrapper.jar create mode 100644 java/app/.mvn/wrapper/maven-wrapper.properties create mode 100644 java/app/mvnw create mode 100644 java/app/mvnw.cmd create mode 100644 java/app/pom.xml create mode 100644 java/app/src/main/java/application/ProjetApp.java create mode 100644 java/app/src/main/java/application/ProjetController.java rename java/{ => app/src/main/java}/application/Scheduling.java (88%) create mode 100644 java/app/src/main/java/module-info.java rename java/{resources => app/src/main/resources/application}/ProjetView.fxml (94%) delete mode 100644 java/application/App.java delete mode 100644 java/bin/App.class delete mode 100644 java/bin/Scheduling.class rename src/{Scheduling.c => application_Scheduling.c} (93%) diff --git a/Makefile b/Makefile index 003e6a6..300e4db 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ testmemorycheck : $(TEST) $(ODIR)/%.o : $(SDIR)/%.c $(DEP) $(CC) $(FLAGS) -o $@ $< -$(ODIR)/Scheduling.o : $(SDIR)/Scheduling.c $(DEP) +$(ODIR)/application_Scheduling.o : $(SDIR)/application_Scheduling.c $(DEP) $(CC) $(FLAGS) $(JINCLUDES) -o $@ $< $(PROG) : $(OBJ) $(ODIR)/main.o diff --git a/include/Scheduling.h b/include/application_Scheduling.h similarity index 100% rename from include/Scheduling.h rename to include/application_Scheduling.h diff --git a/java/.vscode/launch.json b/java/.vscode/launch.json deleted file mode 100644 index 282a758..0000000 --- a/java/.vscode/launch.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "vmArgs": "--module-path \"/home/viwrap/javafx-sdk-20.0.1/lib\" --add-modules javafx.controls,javafx.fxml", - "type": "java", - "name": "Launch Current File", - "request": "launch", - "mainClass": "${file}" - }, - { - "vmArgs": "--module-path \"/home/viwrap/javafx-sdk-20.0.1/lib\" --add-modules javafx.controls,javafx.fxml", - "type": "java", - "name": "Launch App", - "request": "launch", - "mainClass": "App" - } - ] -} diff --git a/java/.vscode/settings.json b/java/.vscode/settings.json deleted file mode 100644 index 69fed8c..0000000 --- a/java/.vscode/settings.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "java.project.sourcePaths": [ - "application" - ], - "java.project.outputPath": "bin", - "java.project.referencedLibraries": [ - "lib/**/*.jar", - "~/javafx-sdk-20.0.1/lib/javafx.base.jar", - "~/javafx-sdk-20.0.1/lib/javafx.controls.jar", - "~/javafx-sdk-20.0.1/lib/javafx.fxml.jar", - "~/javafx-sdk-20.0.1/lib/javafx.graphics.jar", - "~/javafx-sdk-20.0.1/lib/javafx.media.jar", - "~/javafx-sdk-20.0.1/lib/javafx.swing.jar", - "~/javafx-sdk-20.0.1/lib/javafx.web.jar", - "~/javafx-sdk-20.0.1/lib/javafx-swt.ja" - ] -} diff --git a/java/app/.gitignore b/java/app/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/java/app/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/java/app/.idea/.gitignore b/java/app/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/java/app/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/java/app/.idea/encodings.xml b/java/app/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/java/app/.idea/encodings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding"> + <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> + </component> +</project> \ No newline at end of file diff --git a/java/app/.idea/misc.xml b/java/app/.idea/misc.xml new file mode 100644 index 0000000..e5d6295 --- /dev/null +++ b/java/app/.idea/misc.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ExternalStorageConfigurationManager" enabled="true" /> + <component name="MavenProjectsManager"> + <option name="originalFiles"> + <list> + <option value="$PROJECT_DIR$/pom.xml" /> + </list> + </option> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="19" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project> \ No newline at end of file diff --git a/java/app/.idea/uiDesigner.xml b/java/app/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/java/app/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Palette2"> + <group name="Swing"> + <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> + </item> + <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true"> + <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> + <initial-values> + <property name="text" value="Button" /> + </initial-values> + </item> + <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="RadioButton" /> + </initial-values> + </item> + <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="CheckBox" /> + </initial-values> + </item> + <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> + <initial-values> + <property name="text" value="Label" /> + </initial-values> + </item> + <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> + <preferred-size width="150" height="-1" /> + </default-constraints> + </item> + <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> + <preferred-size width="150" height="50" /> + </default-constraints> + </item> + <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> + <preferred-size width="200" height="200" /> + </default-constraints> + </item> + <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> + </item> + <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> + </item> + <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> + <preferred-size width="-1" height="20" /> + </default-constraints> + </item> + <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false"> + <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> + </item> + <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false"> + <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> + </item> + </group> + </component> +</project> \ No newline at end of file diff --git a/java/app/.idea/vcs.xml b/java/app/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/java/app/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/java/app/.mvn/wrapper/maven-wrapper.jar b/java/app/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1dd12f17644411d6e840bd5a10c6ecda0175f18 GIT binary patch literal 58727 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 O3Bv(l28M|jK|BD>%NG0q literal 0 HcmV?d00001 diff --git a/java/app/.mvn/wrapper/maven-wrapper.properties b/java/app/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..40ca015 --- /dev/null +++ b/java/app/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar \ No newline at end of file diff --git a/java/app/mvnw b/java/app/mvnw new file mode 100644 index 0000000..8a8fb22 --- /dev/null +++ b/java/app/mvnw @@ -0,0 +1,316 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# 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 +# +# https://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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/java/app/mvnw.cmd b/java/app/mvnw.cmd new file mode 100644 index 0000000..1d8ab01 --- /dev/null +++ b/java/app/mvnw.cmd @@ -0,0 +1,188 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/java/app/pom.xml b/java/app/pom.xml new file mode 100644 index 0000000..68f9649 --- /dev/null +++ b/java/app/pom.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.viwrap</groupId> + <artifactId>app</artifactId> + <version>1.0-SNAPSHOT</version> + <name>app</name> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <junit.version>5.9.1</junit.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-controls</artifactId> + <version>17.0.2</version> + </dependency> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-fxml</artifactId> + <version>17.0.2</version> + </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-api</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.10.1</version> + <configuration> + <source>17</source> + <target>17</target> + </configuration> + </plugin> + <plugin> + <groupId>org.openjfx</groupId> + <artifactId>javafx-maven-plugin</artifactId> + <version>0.0.8</version> + <executions> + <execution> + <!-- Default configuration for running with: mvn clean javafx:run --> + <id>default-cli</id> + <configuration> + <mainClass>com.viwrap.app/com.viwrap.app.HelloApplication</mainClass> + <launcher>app</launcher> + <jlinkZipName>app</jlinkZipName> + <jlinkImageName>app</jlinkImageName> + <noManPages>true</noManPages> + <stripDebug>true</stripDebug> + <noHeaderFiles>true</noHeaderFiles> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file diff --git a/java/app/src/main/java/application/ProjetApp.java b/java/app/src/main/java/application/ProjetApp.java new file mode 100644 index 0000000..d5dc306 --- /dev/null +++ b/java/app/src/main/java/application/ProjetApp.java @@ -0,0 +1,23 @@ +package application; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.stage.Stage; + +import java.io.IOException; + +public class ProjetApp extends Application { + @Override + public void start(Stage stage) throws IOException { + FXMLLoader fxmlLoader = new FXMLLoader(ProjetApp.class.getResource("ProjetView.fxml")); + Scene scene = new Scene(fxmlLoader.load(), 320, 240); + stage.setTitle("Hello!"); + stage.setScene(scene); + stage.show(); + } + + public static void main(String[] args) { + launch(); + } +} \ No newline at end of file diff --git a/java/app/src/main/java/application/ProjetController.java b/java/app/src/main/java/application/ProjetController.java new file mode 100644 index 0000000..ffed7d9 --- /dev/null +++ b/java/app/src/main/java/application/ProjetController.java @@ -0,0 +1,33 @@ +package application; + +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.canvas.Canvas; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.Spinner; +import javafx.scene.control.TextField; + +public class ProjetController { + + @FXML + TextField _filename; + + @FXML + Spinner _machineCount; + + @FXML + CheckBox _balanced; + + @FXML + CheckBox _preemptive; + + @FXML + Canvas _canvas; + + @FXML + public void submitToDiagram(ActionEvent event) + { + + } +} \ No newline at end of file diff --git a/java/application/Scheduling.java b/java/app/src/main/java/application/Scheduling.java similarity index 88% rename from java/application/Scheduling.java rename to java/app/src/main/java/application/Scheduling.java index b92b4d1..4044eee 100644 --- a/java/application/Scheduling.java +++ b/java/app/src/main/java/application/Scheduling.java @@ -1,5 +1,4 @@ +package application; public class Scheduling { - public static native void runSchedule(String instanceInFile, String scheduleOutFile, int m, int preemption, int balanced); - } diff --git a/java/app/src/main/java/module-info.java b/java/app/src/main/java/module-info.java new file mode 100644 index 0000000..6ccab00 --- /dev/null +++ b/java/app/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module com.viwrap.app { + requires javafx.controls; + requires javafx.fxml; + + + opens application to javafx.fxml; + exports application; +} \ No newline at end of file diff --git a/java/resources/ProjetView.fxml b/java/app/src/main/resources/application/ProjetView.fxml similarity index 94% rename from java/resources/ProjetView.fxml rename to java/app/src/main/resources/application/ProjetView.fxml index 46ba8d1..32c9d04 100644 --- a/java/resources/ProjetView.fxml +++ b/java/app/src/main/resources/application/ProjetView.fxml @@ -14,7 +14,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Text?> -<SplitPane dividerPositions="0.29797979797979796" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/19"> +<SplitPane dividerPositions="0.29797979797979796" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ProjetController"> <items> <AnchorPane maxWidth="-Infinity" minHeight="0.0" minWidth="172.0" prefHeight="160.0" prefWidth="172.0"> <children> diff --git a/java/application/App.java b/java/application/App.java deleted file mode 100644 index 044fede..0000000 --- a/java/application/App.java +++ /dev/null @@ -1,27 +0,0 @@ -import java.io.IOException; - -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Scene; -import javafx.scene.control.SplitPane; -import javafx.stage.Stage; - -public class App extends Application { - public static void main(String[] args) throws Exception { - launch(args); - } - - @Override - public void start(Stage primaryStage) throws Exception { - try { - SplitPane root = FXMLLoader.load(getClass().getResource("resources/ProjetView.fxml")); - primaryStage.setTitle("Hello World"); - primaryStage.setScene(new Scene(root, 800, 600)); - primaryStage.show(); - } - catch (IOException e) - { - System.err.println("FXML indisponible."); - } - } -} diff --git a/java/bin/App.class b/java/bin/App.class deleted file mode 100644 index 85d39015b0d6e7806c05b76d73db4e8db4f6fbb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484 zcmX^0Z`VEs1_oP(1a<}{Mh0fbf&z917DfiSti-a!v<m&if`XjP<iwK9{5*X}1e=k8 z%_cK1v&4>(fmuT{jFExGIX@+pi-DPelZSzofsK)Y-zPIK)vq)+DYYmhF)1gNkwM5O zKRGccEU_pP#D@y9lw@QUGcvIHI2IIGGcvH`CT8X_GKgtJ`+yvvpOcuEt{+@dl$n=q z4YG#IwIVsS0OXotb_O9v24RFMxC|EqBZCMJgD3+(BLiDbVrgD-1|tJYVo`cABZDv& za~T;}i%SxVN*Ec$HNdu}Rp=L&B&Mh82ZKm!%`h$oX$Dz#1{p>M0fc@2Nm;4MB|Hpr z4DyT&9O<bg&N+$2AS*O9!KOgm4i>cLU{GXakSt0q&Mz%WPA%3CD9X=DEeXp^E!Rt{ z$j#wmP-akNXHa2e;76Db*2%-5#-Pr~z@4625(L%F$e;vqCd2|*;6UumOD)k44f3(( zV$fvJW@pf1WDo<Hm{y?=vPa)7!q>+qKQSe>h=)OkL6?z%B_}^I1z{pgJF*WT{<LOi z&_|?-;^fr4RQ=@qypp2)9R1*eoXnDd#Jp4v217;$ZjaQQoP34w{Gyx`E(T);Q+5Uu zMg}3MGmrw7hrx`&oRNW}IJG1svjmhvM6r1+jGe&}Nk7=;U=YdX(8&M>Yz|Eazzi-1 z3kG{o`g34pkb;;6ic64U{eZ-x)VvaF7Z*@;8Z$WYFgP=~Kx_w_h7$W=9bjQ_>>D$< z@i4f9QZ-9)Mt(UbgC~PGJA)TWatN+0E=kShVenz_Wn^GZEh=JU5QW4^X1;zvQD$CA za7j^WVy-m@gFhpK5GW=TGV@Y0iwpAeGLv#r^|%-U8G_jvf?$anRT~dO2q>`F3qU62 z<gqh^A*u89hbMkU2A+bV%-qDHN^s(3WDo&60u&6O#0*W+j0`MA`S~S`3<_{ru$M7n z)S8ijF%{V-NLE=hGVlhMBqnG3CKf<*GgmM;fxBgbVw1zMpg<24?F@<xj10`+7-D8% z1Qibqj124y3=H}Vj0}tn3=FJV+Zi}EGB7YOF>o<3FtC9IIT^Sa7#MiKY*q#y23`gR z22KV(27U%61_1^J1{MZJ20^ef#&BbHFbE@z;bLH7U|`^8U}4}vF-nX<oPmLXkwJn% z62quX3>;vWT54@$kP=eZ#-Ox=LE`{}p0Bo$!8QgX?cEF(kvbv_Rw4{G+ZpV(F*s^( zV{l#0z~j4#!9&Pz8$-ZGuzPhF^cg}Kn8ChLV&Gt4U=U;wU=U&uV-RN0U=U%@VGw1| zXAomBV31(2V2}bkPm6(tfq}si>QfLaoFRgNkwJh#h9Qz6ih+s2fPsS{njwaPi6NGO Vfq|WYDW9Dol!JkhAr2gL@c<=pR)_!q diff --git a/java/bin/Scheduling.class b/java/bin/Scheduling.class deleted file mode 100644 index 9e872064c688ae13b0f7e44c3aaa7677c80a8ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmX^0Z`VEs1_oOOA$A5PMh33n<c!pm(wxk^ban<7Mh1bb#Ii*FoW#6zegCAa)Z`LI z1~!|_yv!0iMh0dL%`ip=7U%qwR4xW)22LIZRt7dk27aH+yi~u^+@#c^ki?{%R7M6N zpZw&+oUp{AOb{O`$WoG#S<J}5<Abo#nvsFKs5B2MkjluQrQw6HKe(hQGcVm5Q^eEL z6XX!C;QZ2}<W#pzkd^#ULo)Ny^*}~2C^9fIFf)Jv69Xg2p$v=+><kPH`V5Q=j0_A6 ztXkU{I5sjcFfcK2F)%Q&fdv^ExEUB2c))B{1|9}p1_nk>20jLU1_lO31_7{YK>(-t BMU?;m diff --git a/src/Scheduling.c b/src/application_Scheduling.c similarity index 93% rename from src/Scheduling.c rename to src/application_Scheduling.c index 6ca5a3e..175f85b 100644 --- a/src/Scheduling.c +++ b/src/application_Scheduling.c @@ -1,7 +1,7 @@ #include <jni.h> +#include "application_Scheduling.h" #include "instance.h" #include "algo.h" -#include "Scheduling.h" JNIEXPORT void JNICALL Java_Scheduling_runSchedule (JNIEnv * env, jclass cl, jstring inst_in, jstring sched_out, jint m, jint preempt, jint balanced) @@ -11,4 +11,4 @@ JNIEXPORT void JNICALL Java_Scheduling_runSchedule Instance i = read_instance(instance_file); struct schedule_t *s = create_schedule(i, m, preempt, balanced); save_schedule(s, schedule_file); -} \ No newline at end of file +} -- GitLab