Skip to content

Commit

Permalink
Refactored plugin components.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed Jul 10, 2015
1 parent 052c7a0 commit bb8e815
Show file tree
Hide file tree
Showing 26 changed files with 403 additions and 368 deletions.
2 changes: 0 additions & 2 deletions rapidoid-app/src/main/java/org/rapidoid/app/Apps.java
Expand Up @@ -74,8 +74,6 @@ public static void run(Object... args) {
}

public static void bootstrap(Object... args) {
Plugins.bootstrap();

Set<String> config = U.set();

for (Object arg : args) {
Expand Down
Expand Up @@ -15,8 +15,8 @@
import org.rapidoid.beany.Beany;
import org.rapidoid.ctx.Ctxs;
import org.rapidoid.lambda.Callback;
import org.rapidoid.plugins.impl.DefaultDBPlugin;
import org.rapidoid.util.Jobs;
import org.rapidoid.plugins.impl.DBPluginBase;
import org.rapidoid.util.U;

/*
Expand All @@ -41,7 +41,7 @@

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public class JPADBPlugin extends DefaultDBPlugin {
public class JPADBPlugin extends DBPluginBase {

@Override
public String insert(Object entity) {
Expand Down
8 changes: 4 additions & 4 deletions rapidoid-plugins/src/main/java/org/rapidoid/plugins/DB.java
Expand Up @@ -24,15 +24,15 @@
import java.util.List;
import java.util.Map;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.lambda.Callback;
import org.rapidoid.lambda.Operation;
import org.rapidoid.lambda.Predicate;
import org.rapidoid.util.U;

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public class DB {

public static String insert(Object record) {
Expand Down
Expand Up @@ -2,6 +2,9 @@

import java.util.Map;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;

/*
* #%L
* rapidoid-plugins
Expand All @@ -22,10 +25,8 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public class Entities {

public static <E> Class<E> getEntityType(String simpleTypeName) {
Expand Down
@@ -1,5 +1,8 @@
package org.rapidoid.plugins;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;

/*
* #%L
* rapidoid-plugins
Expand All @@ -20,10 +23,8 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public class Languages {

public static String singularToPlural(String noun) {
Expand Down
@@ -1,5 +1,8 @@
package org.rapidoid.plugins;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;

/*
* #%L
* rapidoid-plugins
Expand All @@ -20,10 +23,8 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public class Lifecycle {

public static void onStart(Object[] args) {
Expand Down
52 changes: 32 additions & 20 deletions rapidoid-plugins/src/main/java/org/rapidoid/plugins/Plugins.java
@@ -1,19 +1,21 @@
package org.rapidoid.plugins;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.log.Log;
import org.rapidoid.plugins.impl.AbstractDBPlugin;
import org.rapidoid.plugins.impl.AbstractEntitiesPlugin;
import org.rapidoid.plugins.impl.AbstractLanguagesPlugin;
import org.rapidoid.plugins.impl.AbstractLifecyclePlugin;
import org.rapidoid.plugins.impl.AbstractUsersPlugin;
import org.rapidoid.plugins.impl.DefaultDBPlugin;
import org.rapidoid.plugins.impl.DefaultEmailPlugin;
import org.rapidoid.plugins.impl.DefaultEntitiesPlugin;
import org.rapidoid.plugins.impl.DefaultLanguagesPlugin;
import org.rapidoid.plugins.impl.DefaultLifecyclePlugin;
import org.rapidoid.plugins.impl.DefaultSMSPlugin;
import org.rapidoid.plugins.impl.DefaultUsersPlugin;
import org.rapidoid.plugins.spec.DBPlugin;
import org.rapidoid.plugins.spec.EmailPlugin;
import org.rapidoid.plugins.spec.EntitiesPlugin;
import org.rapidoid.plugins.spec.LanguagesPlugin;
import org.rapidoid.plugins.spec.LifecyclePlugin;
import org.rapidoid.plugins.spec.SMSPlugin;
import org.rapidoid.plugins.spec.UsersPlugin;

/*
Expand All @@ -36,17 +38,17 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public final class Plugins {

private static volatile LifecyclePlugin lifecyclePlugin = new AbstractLifecyclePlugin();
private static volatile LanguagesPlugin languagesPlugin = new AbstractLanguagesPlugin();
private static volatile DBPlugin dbPlugin = new AbstractDBPlugin();
private static volatile EntitiesPlugin entitiesPlugin = new AbstractEntitiesPlugin();
private static volatile UsersPlugin usersPlugin = new AbstractUsersPlugin();
private static volatile LifecyclePlugin lifecyclePlugin = new DefaultLifecyclePlugin();
private static volatile LanguagesPlugin languagesPlugin = new DefaultLanguagesPlugin();
private static volatile DBPlugin dbPlugin = new DefaultDBPlugin();
private static volatile EntitiesPlugin entitiesPlugin = new DefaultEntitiesPlugin();
private static volatile UsersPlugin usersPlugin = new DefaultUsersPlugin();
private static volatile EmailPlugin emailPlugin = new DefaultEmailPlugin();
private static volatile SMSPlugin smsPlugin = new DefaultSMSPlugin();

static DBPlugin db() {
return dbPlugin;
Expand All @@ -68,6 +70,14 @@ static LifecyclePlugin lifecycle() {
return lifecyclePlugin;
}

static EmailPlugin email() {
return emailPlugin;
}

static SMSPlugin sms() {
return smsPlugin;
}

public static void register(LifecyclePlugin lifecyclePlugin) {
Log.info("Registering Lifecycle plugin", "plugin", lifecyclePlugin);
Plugins.lifecyclePlugin = lifecyclePlugin;
Expand All @@ -93,12 +103,14 @@ public static void register(UsersPlugin usersPlugin) {
Plugins.usersPlugin = usersPlugin;
}

public static void bootstrap() {
Plugins.register(new AbstractDBPlugin());
Plugins.register(new DefaultEntitiesPlugin());
Plugins.register(new DefaultLanguagesPlugin());
Plugins.register(new DefaultLifecyclePlugin());
Plugins.register(new DefaultUsersPlugin());
public static void register(EmailPlugin emailPlugin) {
Log.info("Registering Email plugin", "plugin", emailPlugin);
Plugins.emailPlugin = emailPlugin;
}

public static void register(SMSPlugin smsPlugin) {
Log.info("Registering SMS plugin", "plugin", smsPlugin);
Plugins.smsPlugin = smsPlugin;
}

}
@@ -1,5 +1,8 @@
package org.rapidoid.plugins;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;

/*
* #%L
* rapidoid-plugins
Expand All @@ -20,10 +23,8 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public class Users {

public static <U> U findByUsername(Class<U> userClass, String username) {
Expand Down
Expand Up @@ -4,6 +4,8 @@
import java.util.List;
import java.util.Map;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.lambda.Callback;
import org.rapidoid.lambda.Operation;
import org.rapidoid.lambda.Predicate;
Expand All @@ -29,11 +31,9 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
public class AbstractDBPlugin implements DBPlugin {
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public abstract class AbstractDBPlugin implements DBPlugin {

@Override
public String insert(Object entity) {
Expand Down
Expand Up @@ -2,6 +2,8 @@

import java.util.Map;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.plugins.spec.EntitiesPlugin;

/*
Expand All @@ -24,11 +26,9 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
public class AbstractEntitiesPlugin implements EntitiesPlugin {
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public abstract class AbstractEntitiesPlugin implements EntitiesPlugin {

@Override
public <E> Class<E> getEntityType(String simpleTypeName) {
Expand Down
@@ -1,5 +1,7 @@
package org.rapidoid.plugins.impl;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.plugins.spec.LanguagesPlugin;

/*
Expand All @@ -22,11 +24,9 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
public class AbstractLanguagesPlugin implements LanguagesPlugin {
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public abstract class AbstractLanguagesPlugin implements LanguagesPlugin {

@Override
public String singularToPlural(String noun) {
Expand Down
@@ -1,5 +1,7 @@
package org.rapidoid.plugins.impl;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.plugins.spec.LifecyclePlugin;

/*
Expand All @@ -22,11 +24,9 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
public class AbstractLifecyclePlugin implements LifecyclePlugin {
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public abstract class AbstractLifecyclePlugin implements LifecyclePlugin {

@Override
public void onStart(Object[] args) {
Expand Down
@@ -1,5 +1,7 @@
package org.rapidoid.plugins.impl;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.plugins.spec.UsersPlugin;

/*
Expand All @@ -22,11 +24,9 @@
* #L%
*/

/**
* @author Nikolche Mihajlovski
* @since 3.0.0
*/
public class AbstractUsersPlugin implements UsersPlugin {
@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public abstract class AbstractUsersPlugin implements UsersPlugin {

@Override
public <U> U findByUsername(Class<U> userClass, String username) {
Expand Down

0 comments on commit bb8e815

Please sign in to comment.