vlingo / xoom-actors

The VLINGO XOOM platform SDK for the type-safe Actor Model, delivering Reactive concurrency, high scalability, high-throughput, and resiliency using Java and other JVM languages.
https://vlingo.io
Mozilla Public License 2.0
229 stars 28 forks source link

Configuration must accept new custom plugins not previously known #83

Closed VaughnVernon closed 4 years ago

VaughnVernon commented 4 years ago

Attempting to by fluent API register some plugins that are unknown to the Configuration will fail. Example, the jdbcQueueMailbox is registered over top of the queueMailbox. Note this is not a problem when registering by means of vlingo-actors.properties.

public class JDBCConcurrentQueueMailboxPluginConfiguration extends ConcurrentQueueMailboxPluginConfiguration {
    public static JDBCConcurrentQueueMailboxPluginConfiguration register(final Configuration configuration) {
      return new JDBCConcurrentQueueMailboxPluginConfiguration(configuration);
    }

    JDBCConcurrentQueueMailboxPluginConfiguration(final Configuration configuration) {
      final String name = "jdbcQueueMailbox";

      final Properties properties = new Properties();

      properties.setProperty("plugin." + name + ".defaultMailbox", "false");

      this.buildWith(configuration, new PluginProperties(name, properties));

      configuration.with(this);
    }
  }
VaughnVernon commented 4 years ago

Due to github hiccup it appeared that this issue was not created so I resubmitted, which caused a new issue to be created.