Pierwszy agent w projekcie typu Maven

Stworzyłem projekt Maven w IntelliJ aby nie ściągać samemu repozytorium. W tym celu utworzyłem pusty projekt typu Maven. Plik pom.xml po zmianach wygląda:

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>bocian_karol_agents</groupId>
    <artifactId>Agents</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.tilab.jade</groupId>
            <artifactId>jade</artifactId>
            <version>4.3.3</version>
        </dependency>

        <dependency>
            <groupId>com.datastax.cassandra</groupId>
            <artifactId>cassandra-driver-core</artifactId>
            <version>2.1.4</version>
        </dependency>

        <dependency>
            <groupId>com.valchkou.datastax</groupId>
            <artifactId>cassandra-driver-mapping</artifactId>
            <version>2.1.4</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.9</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.9</version>
        </dependency>
        <dependency>
            <groupId>org.xerial.snappy</groupId>
            <artifactId>snappy-java</artifactId>
            <version>1.1.1.6</version>
        </dependency>
        <dependency>
            <groupId>net.jpountz.lz4</groupId>
            <artifactId>lz4</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.7</version>
        </dependency>

        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.13</version>
        </dependency>

    </dependencies>

    <repositories>
        <repository>
            <id>tilab</id>
            <url>http://jade.tilab.com/maven/</url>
        </repository>
    </repositories>

</project>

Stworzyłem klasę JadeBootThread, wzorując się na http://stackoverflow.com/a/27621225.

package karol_bocian.solution.agentModule.agentManagement;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class JadeBootThread extends Thread {

    private final String jadeBoot_CLASS_NAME = "jade.Boot";

    private final String MAIN_METHOD_NAME = "main";


    private final String GUI_args = "-gui";

    private final Class<?> secondClass;

    private final Method main;

    private final String[] params;
    private final String agents = "-agents";
    private final String local_port = "1210";
    private final String local_port_args = "-local-port";

    public JadeBootThread(String ACTOR_NAMES_args) throws ClassNotFoundException, SecurityException, NoSuchMethodException {
        secondClass = Class.forName(jadeBoot_CLASS_NAME);
        main = secondClass.getMethod(MAIN_METHOD_NAME, String[].class);
        params = new String[]{GUI_args, local_port_args, local_port, agents, ACTOR_NAMES_args};
    }

    @Override
    public void run() {
        try {
            main.invoke(null, new Object[]{params});
        } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
            ex.printStackTrace();
        }

    }
}

Dodałem własnego agenta:

package karol_bocian_agents;
import jade.core.Agent;

public class HelloAgent extends Agent {
    protected void setup() {
        System.out.println(&amp;amp;quot;Hello World. &amp;amp;quot;);
        System.out.println(&amp;amp;quot;My name is &amp;amp;quot; + getLocalName());
    }
}

oraz klasę główną (Main):

package karol_bocian_agents;
public class Main {
    public static void main(String[] args) {
        System.out.print(&amp;amp;quot;Hello World&amp;amp;quot;);

        JadeBootThread jadeBootThread = null;
        try {
            jadeBootThread = new JadeBootThread();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
        jadeBootThread.run();
    }
}

Musiałem również ściągnąć Mavena. Rozpakowałem go w C:\Program Files\Apache Software Foundation. A następnie w IntelliJ w File->Settings->Build, Execution, Deployment -> Maven w Maven home directory ustawiłem C:\Program Files\Apache Software Foundation\apache-maven-3.2.5 oraz zaznaczyłem Override.

set

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s