Skip to content

Commit

Permalink
Initial check-in
Browse files Browse the repository at this point in the history
  • Loading branch information
mn authored and mn committed Oct 28, 2020
1 parent be4c9f6 commit c32c86b
Show file tree
Hide file tree
Showing 21 changed files with 777 additions and 1 deletion.
31 changes: 31 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/target/
23 changes: 23 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>EventBus</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
41 changes: 40 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,40 @@
# EventBus
# EventBus
Simple Java EventBus.

Follow steps to start using EventBus (see example in `test -> com.jdotsoft.eventbus.demo.EventBusDemo`):
- Create `BlueEvent` class which extends base class `Event`.
This class might have constructor with arguments, member variables, and any methods.

public class BlueEvent extends Event {
}
- Create `BlueEventListener` interface which extends base interface `EventListener` with method `onBlue(BlueEvent e)`.
This interface might have any methods declarations, however, only method which returns `void` with single argument `BlueEvent` will be invoked.

public interface BlueEventListener extends EventListener {
void onBlue(BlueEvent event);
}
- Implement `BlueEventListener` (and other event listeners if required) in some class which will receive the `BlueEvent` event and register it:

public class BluePanel extends JPanel implements BlueEventListener {
public BluePanel() {
EventBus.getInstance().registerListeners(this);
}
@Override
public void onBlue(BlueEvent event) {
. . .
}
}
- Fire event

eventBus.fire(new BlueEvent());
- or -
EventBus.getInstance().fire(new BlueEvent());

- Object `BluePanel` will receive event in listener `BlueEventListener` implementation `onBlue(BlueEvent e)`.


`EventBus` object could be instantiated as `EventBus eventBus = new EventBus();` somewhere in a main class and passed to listeners.
Use static `EventBus.getInstance();` as an alternative.



66 changes: 66 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?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>

<name>EventBus</name>
<groupId>com.jdotsoft</groupId>
<packaging>jar</packaging>
<artifactId>jdotsoft-eventbus</artifactId>
<version>2.1</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.build.timestamp.format>MM-dd-yyyy hh:mma</maven.build.timestamp.format>
</properties>

<dependencies>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</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.0</version>
<configuration>
<archive>
<manifestEntries>
<Built-By>JDOTSOFT</Built-By> <!-- override current user -->
<Build-Time>${maven.build.timestamp}</Build-Time> <!-- GMT time -->
</manifestEntries>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

</project>
20 changes: 20 additions & 0 deletions src/main/java/com/jdotsoft/eventbus/Event.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright (C) 2020 JDotSoft. All Rights Reserved.
*
* Licensed 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.
*/
package com.jdotsoft.eventbus;

/**
* Base interface for all event classes.
*/
public interface Event {
}
Loading

0 comments on commit c32c86b

Please sign in to comment.