Commit 51dde67a authored by Johannes Salentin's avatar Johannes Salentin
Browse files

Merge branch 'feature/maven' into develop

parents acc861c6 25eb04c3
Pipeline #157808 passed with stages
in 51 seconds
......@@ -128,4 +128,8 @@ fabric.properties
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
\ No newline at end of file
.idea/caches/build_file_checksums.ser
# Maven
log/
target/
\ No newline at end of file
image: maven:latest
cache:
paths:
- target/
compile:
stage: build
script:
- mvn compile -B
test:
stage: test
script:
- mvn test -B
verify:
stage: test
script:
- mvn verify -B
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="EA Smells Detection" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="EA Smells Detection" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM">
<component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="PROJECT" charset="windows-1252" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
......
# Using JAXB:
1. Bind the schema for the XML document: \
``xjc -p de.example.model archimate3_Diagram.xsd -d src`` \
``xjc -p de.example.model -encoding UTF-8 archimate3_Diagram.xsd`` \
If needed compile with \
``javac example/model/*.java``
2. Unmarshal the document into Java content objects.
......
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
......@@ -16,5 +20,10 @@
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
</component>
</module>
\ No newline at end of file
MIT License
Copyright (c) 2019 Johannes Salentin - RWTH Aachen University
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
[![pipeline status](https://git.rwth-aachen.de/ba-ea-smells/program/badges/develop/pipeline.svg)](https://git.rwth-aachen.de/ba-ea-smells/program/commits/develop)
[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg)](https://git.rwth-aachen.de/ba-ea-smells/program/blob/master/CONTRIBUTING.md)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
# Program (prototype)
This repository contains everything concerning the prototype program to detect Enterprise Architecture Smells in EA Repositories.
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.example.main</groupId>
<artifactId>EASmellsDetection</artifactId>
<version>1.0-SNAPSHOT</version>
<name>EA Smell Detection</name>
<properties>
<!-- Generic properties -->
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target</outputDirectory>
<resources>
<resource>
<directory>${basedir}</directory>
<includes>
<include>CentralModel.xml</include>
<include>Test.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>de.example.main.EASmellDetector</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -7,7 +7,7 @@ import java.util.List;
public class EASmellDetector {
public static void main(String[] args) {
ModelAdapter model = new ModelAdapter("CentralModel.xml", null);
ModelAdapter model = new ModelAdapter(args[0], args.length == 2 ? args[1] : null);
Detector.setModel(model);
List<Detector> detectors = new ArrayList<>();
......
package de.example.main;
import de.example.model.ElementType;
import org.xml.sax.SAXException;
import javax.xml.XMLConstants;
......@@ -15,15 +14,6 @@ import java.io.File;
public class JAXBMarshalUnmarshal {
// mainly used for testing
public static void main(String[] args) {
ModelAdapter model = new ModelAdapter("CentralModel.xml", null);
ElementType element = model.getElementByIdentifier("id-5e50603d-bd28-49ef-91e7-5db25b447f6a");
System.out.println(element.getIdentifier());
System.out.println(model.getViews().get(0).getNameGroup().get(0).getValue());
//marshal(model.getModel(), "Test.xml", "archimate3_Diagram.xsd");
}
/**
* Unmarshalling of provided XML-File
*
......
......@@ -136,7 +136,9 @@ public class ModelAdapter {
public List<ElementType> getIdentifiersInLayer(String layer) {
List<OrganizationType> l = model.getOrganizations().get(0).getItem().stream().filter(e -> e.getLabelGroup().get(0).getValue().toLowerCase().contains(layer.toLowerCase())).collect(Collectors.toList());
if (l.isEmpty()) {
return null;
return new ArrayList<>();
} else if (l.get(0).getItem().isEmpty()) {
return new ArrayList<>();
} else {
l = l.get(0).getItem();
List<ElementType> res = new ArrayList<>();
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -15,7 +15,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr Access complex type.
* <p>Java-Klasse für Access complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr AccessTypeEnum.
* <p>Java-Klasse für AccessTypeEnum.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
* <p>
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr Aggregation complex type.
* <p>Java-Klasse für Aggregation complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -15,7 +15,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr AllowedElementTypeType complex type.
* <p>Java-Klasse für AllowedElementTypeType complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -15,7 +15,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr AllowedRelationshipTypeType complex type.
* <p>Java-Klasse für AllowedRelationshipTypeType complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr AndJunction complex type.
* <p>Java-Klasse für AndJunction complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
......
//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.06.27 um 09:03:30 AM CEST
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2019.07.07 um 01:18:33 PM CEST
//
......@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.XmlType;
/**
* <p>Java-Klasse fr ApplicationCollaboration complex type.
* <p>Java-Klasse für ApplicationCollaboration complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment