Code Monkey home page Code Monkey logo

mde_optimiser's Introduction

MDE Optimiser

This is the main repository for MDEOptimiser.

Build status

Branch Status
Develop Dev Build
Release Master Build

Installation URLs

Requirements:

Eclipse Version 2019-03
Java 11

Install the version of MDEOptimiser you would like to use from one of the Eclipse Update sites below.

Version Update Site
Develop http://mde-optimiser.github.io/mdeo_repo/src/composite/develop/
Release http://mde-optimiser.github.io/mdeo_repo/src/composite/release/

http://mde-optimiser.github.io/mde_optimiser/downloads/p2/develop/

Development Version:

http://mde-optimiser.github.io/mde_optimiser/downloads/p2/develop/

Development Environment Configuration

Checkout the code and initialise the local development environment using the provided ant build script found in build/ant/:

1. git clone
2. cd build/ant
3. ant

Import the MDEOptimiser library projects from build/maven/ as an existing maven project in your IDE.

To extend the Eclipse UI interface, using Eclipse and after importing the library projects, also import interfaces/eclipse/src/ as an existing maven project.

Build structure

The MDEOptimiser parent pom file is located in the build/maven directory.

The Eclipse plugin parent pom file is dependent on a successfull MDEOptimiser maven build. The pom file for the Eclipse UI is located in the interfaces/eclipse/src directory.

All Maven projects are organised in a single pom file. ANT is used to build these projects first, then the Eclipse interface is built by using the published artifacts from this build.

Build order:

  1. Maven projects are compiled and deployed to a maven repository. Eclipse bundles are loaded as a maven repository from the repositories/output directory
  2. The maven repository is converted to a P2 repository and the output is stored in repositories/output
  3. The Eclipse projects are built. Maven artifacts are loaded as Eclipse bundles from the P2 repository.

mde_optimiser's People

Contributors

alxbrd avatar leative avatar szschaler avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mde_optimiser's Issues

Minor flaws in execution of GraphTransformationCrossover

In the execution of the rules the original parents are used as a parameter rather than their copies. I am not sure what the implications are (if there are any) but I am quite sure this is not intended.

henshinExecutor.runRuleOperator(operator, graph, parents) -> henshinExecutor.runRuleOperator(operator, graph, crossoverParents)
henshinExecutor.runUnitOperator(operator, graph, parents) -> henshinExecutor.runUnitOperator(operator, graph, crossoverParents)

Error with the generator

I am trying to use the metamodel and henshin rule shown below to generate results, but I always get the error report in the third picture.
I think there may be a bug in the generator, where it expects there to be an opposite reference for every reference it generates operators for. When there isn’t one, it runs into a bug.
image
image
image

And every time when I open Eclipse, it shows this error log. Is this related to my problem?
833049441f281d4a6761009212e055d

maven compile issue

Hi Alex,

When I run 'mvn clean compile' on the src folder after cloning the repository onto my local machine - I get an artifact not found. Please see the attached file..
mvn-clean-compile-error.txt

Many thanks,
Isaac

ConcurrentModificationException of org.eclipse.emf.common.util.AbstractEList

I am trying to run the development of MDEOptimiser obtained from the p2 update site on Java 11. I also tried Java 8, but with that version, the MDEOptimiser Eclipse plugins failed to load for me. When starting the optimisation either from an Eclipse run configuration, or from the command line with uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run, I get the following exception:

Warning: Nashorn engine is planned to be removed from a future JDK release
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.moeaframework.Instrumenter (file:/home/kris/eclipse-2019-03/plugins/org.moeaframework_2.13.0.beta.jar) to field java.util.AbstractCollection.MAX_ARRAY_SIZE
WARNING: Please consider reporting this to the maintainers of org.moeaframework.Instrumenter
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "main" java.util.ConcurrentModificationException
	at org.eclipse.emf.common.util.AbstractEList$EIterator.checkModCount(AbstractEList.java:751)
	at org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(AbstractEList.java:699)
	at org.eclipse.emf.common.util.AbstractEList$EIterator.next(AbstractEList.java:685)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:650)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:709)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:698)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:709)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:709)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:709)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:709)
	at org.moeaframework.Instrumenter.instrument(Instrumenter.java:841)
	at org.moeaframework.Executor.runSingleSeed(Executor.java:814)
	at org.moeaframework.Executor.run(Executor.java:748)
	at uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.MoeaOptimisation.runOptimisation(MoeaOptimisation.java:71)
	at uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.moea.MoeaOptimisation.execute(MoeaOptimisation.java:33)
	at uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.OptimisationInterpreter.start(OptimisationInterpreter.java:65)
	at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.runBatch(Run.java:140)
	at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.run(Run.java:122)
	at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.run(Run.java:96)
	at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.main(Run.java:59)

This seems related to MOEAFramework/MOEAFramework#180 , which points at excluding the org.eclipse packages from MOEA instrumentation as a possible fix.

After investigating the problem a little more, and jury-rigging a version of MoeaOptimisation that excludes org.eclipse (along with a custom subclass of uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run that gets created by the same MoptStandaloneSetup injector), I can confirm I no longer get the exception above.

org.sidiff.serge could not be found

I am having problems with the installation. The update site seems not able to find the plugin org.sidiff.serge. I tried to install this tool from the zip at http://pi.informatik.uni-siegen.de/mrindt/SERGe.php but still this plugin is not there.
Cannot complete the install because one or more required items could not be found. Software being installed: MDEOptimiser 1.0.0.201806200557 (uk.ac.kcl.mdeoptimise.feature.feature.group 1.0.0.201806200557) Missing requirement: MDEOptimiser 1.0.0.201806200557 (uk.ac.kcl.mdeoptimise.feature.feature.group 1.0.0.201806200557) requires 'org.sidiff.serge 0.0.0' but it could not be found

Path problems when writing experiment results to disk (under Windows)

I ran an .mpot file (CRA case) via context menu. The search seems to have behaved as expected, but during the serialization, the following exception was thrown. Possibly there is a simple fix, in the way that MDEOResultsOutput.saveOutcome() puts together the output path.

Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 52: C:\Users\danie\Desktop\cra\mdeo-results/experiment-C:\Users\danie\Desktop\cra\src\main\java\cra_manual_rules.mopt/ at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229) at java.base/java.nio.file.Path.of(Path.java:147) at java.base/java.nio.file.Paths.get(Paths.java:69) at uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.output.MDEOResultsOutput.saveOutcome(MDEOResultsOutput.java:67) at uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.output.MDEOResultsOutput.saveOutcome(MDEOResultsOutput.java:60) at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.runSearch(Run.java:209) at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.run(Run.java:121) at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.run(Run.java:103) at uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run.main(Run.java:61)

Error with evolver parameters

I am trying to pass a parameter to an Henshin rule by specifying it in the .mopt file.
I am using the default "Random" function that takes a regular expression as a String and return a random value instance of that expression. Here is my specification:
mutate using <FQAsEvolvers.henshin> unit "changeConfiguration" parameters {delta => Random("1")}
And my Henshin rule:
image

But I always get the following error independently from the regular expression:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.