Moved project to SpringSource.

This commit is contained in:
Oliver Gierke
2012-02-21 16:04:32 +01:00
parent 49b6dea1f4
commit b4a036b66a
73 changed files with 248 additions and 300 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
.classpath
.project
.settings/
.springBeans
target/

View File

@@ -1,13 +1,14 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>org.synyx.hera.core</artifactId>
<artifactId>spring-plugin-core</artifactId>
<name>Hera Core</name>
<name>Spring Plugin Core</name>
<description>Core plugin infrastructure</description>
<parent>
<artifactId>org.synyx.hera</artifactId>
<groupId>org.synyx.hera</groupId>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin</artifactId>
<version>0.8.0.BUILD-SNAPSHOT</version>
</parent>

View File

@@ -1,4 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter>
<title>Core</title>
@@ -80,13 +82,13 @@ public class HostImpl implements Host {
<title>Collecting Spring beans dynamically</title>
<para>With the <classname>BeanListBeanFactory</classname>
<productname>Hera</productname> provides a Spring container extension,
that allows to lookup beans of a given type in the current
<productname>Spring Plugin</productname> provides a Spring container
extension, that allows to lookup beans of a given type in the current
<interfacename>ApplicationContext</interfacename> and register them as
list under a given name. Take a look at the configuration now:</para>
<example>
<title>Host and plugin configuration with Hera support</title>
<title>Host and plugin configuration with Spring Plugin support</title>
<programlisting lang="" language="xml">&lt;import resource="classpath*:com/acme/**/plugins.xml" /&gt;
@@ -94,7 +96,7 @@ public class HostImpl implements Host {
&lt;property name="plugins" ref="plugins" /&gt;
&lt;/bean&gt;
&lt;bean class="org.synyx.hera.plugin.support.BeanListBeanFactory"&gt;
&lt;bean class="org.springframework.plugin.support.BeanListBeanFactory"&gt;
&lt;property name="lists"&gt;
&lt;map&gt;
&lt;entry key="plugins" value="org.acme.MyPluginInterface" /&gt;
@@ -141,10 +143,10 @@ public class HostImpl implements Host {
<title>Host configuration using the plugin namespace</title>
<programlisting language="xml">&lt;beans xmlns="http://www.springframework.org/schema/beans"
xmlns:plugin="http://schemas.synyx.org/hera"
xmlns:plugin="http://www.springframework.org/schema/plugin"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://schemas.synyx.org/hera http://schemas.synyx.org/hera/hera.xsd"&gt;
http://www.springframework.org/schema/plugin http://www.springframework.org/schema/plugin/spring-plugin.xsd"&gt;
&lt;import resource="classpath*:com/acme/**/plugins.xml" /&gt;
@@ -237,7 +239,7 @@ public interface ProductProcessor extends Plugin&lt;ProductType&gt; {
<para>Using a <interfacename>List</interfacename> as plugin container as
well as the <interfacename>Plugin</interfacename> interface you can now
select plugins supporting the given delimiter. To not reimplement the
lookup logic for common cases Hera provides a
lookup logic for common cases Spring Plugin provides a
<classname>PluginRegistry&lt;T extends Plugin&lt;S&gt;,
S&gt;</classname> interface that provides sophisticated methods to
access certain plugins:</para>
@@ -268,9 +270,9 @@ registry.getPluginsFor(ProductType.HARDWARE, new MyException("Damn!");</programl
<title>Configuration and namespace</title>
<para>Similar to the <classname>BeanListBeanFactory</classname>
described in <xref linkend="core.collecting-beans" /> Hera provides a
<classname>PluginRegistryBeanFactory</classname> to automatically lookup
beans of a dedicated type to be aggregated in a
described in <xref linkend="core.collecting-beans" /> Spring Plugin
provides a <classname>PluginRegistryBeanFactory</classname> to
automatically lookup beans of a dedicated type to be aggregated in a
<classname>PluginRegistry</classname>. Note that the type has to be
assignable to <interfacename>Plugin</interfacename> to let the registry
work as expected.</para>
@@ -305,11 +307,11 @@ registry.getPluginsFor(ProductType.HARDWARE, new MyException("Damn!");</programl
the <ulink url="???">section on this topic in the Spring reference
documentation</ulink>.</para>
<para>Using the Hera namespace you will get a
<para>Using the Spring Plugin namespace you will get a
<interfacename>PluginRegistry</interfacename> instance that is capable
of preserving the order defined by the mentioned means. Using Hera
programatically use
of preserving the order defined by the mentioned means. Using Spring
Plugin programatically use
<classname>OrderAwarePluginRegistry</classname>.</para>
</simplesect>
</section>
</chapter>
</chapter>

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
/**
* Extension of {@link PluginRegistry} with additional methods to modify the registry.

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import java.util.ArrayList;
import java.util.Collections;
@@ -142,7 +142,7 @@ public class OrderAwarePluginRegistry<T extends Plugin<S>, S> extends SimplePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.SimplePluginRegistry#addPlugin(org.synyx.hera.core.Plugin)
* @see org.springframework.plugin.core.SimplePluginRegistry#addPlugin(org.springframework.plugin.core.Plugin)
*/
@Override
public OrderAwarePluginRegistry<T, S> addPlugin(T plugin) {

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
/**
* Central interface for plugins for the system. This interface is meant to be extended by concrete plugin interfaces.

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import java.util.List;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import java.util.ArrayList;
import java.util.Collections;
@@ -66,7 +66,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.MutablePluginRegistry#addPlugin(org.synyx.hera.core.Plugin)
* @see org.springframework.plugin.core.MutablePluginRegistry#addPlugin(org.springframework.plugin.core.Plugin)
*/
public SimplePluginRegistry<T, S> addPlugin(T plugin) {
@@ -79,7 +79,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.MutablePluginRegistry#removePlugin(org.synyx.hera.core.Plugin)
* @see org.springframework.plugin.core.MutablePluginRegistry#removePlugin(org.springframework.plugin.core.Plugin)
*/
public boolean removePlugin(T plugin) {
@@ -88,7 +88,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#getPluginFor(java.lang.Object)
* @see org.springframework.plugin.core.PluginRegistry#getPluginFor(java.lang.Object)
*/
public T getPluginFor(S delimiter) {
@@ -103,7 +103,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#getPluginsFor(java.lang.Object)
* @see org.springframework.plugin.core.PluginRegistry#getPluginsFor(java.lang.Object)
*/
public List<T> getPluginsFor(S delimiter) {
@@ -120,7 +120,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#getPluginFor(java.lang.Object, java.lang.Exception)
* @see org.springframework.plugin.core.PluginRegistry#getPluginFor(java.lang.Object, java.lang.Exception)
*/
public <E extends Exception> T getPluginFor(S delimiter, E ex) throws E {
@@ -135,7 +135,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#getPluginsFor(java.lang.Object, java.lang.Exception)
* @see org.springframework.plugin.core.PluginRegistry#getPluginsFor(java.lang.Object, java.lang.Exception)
*/
public <E extends Exception> List<T> getPluginsFor(S delimiter, E ex) throws E {
@@ -150,7 +150,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#getPluginFor(java.lang.Object, org.synyx.hera.core.Plugin)
* @see org.springframework.plugin.core.PluginRegistry#getPluginFor(java.lang.Object, org.springframework.plugin.core.Plugin)
*/
public T getPluginFor(S delimiter, T plugin) {
@@ -161,7 +161,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#getPluginsFor(java.lang.Object, java.util.List)
* @see org.springframework.plugin.core.PluginRegistry#getPluginsFor(java.lang.Object, java.util.List)
*/
public List<T> getPluginsFor(S delimiter, List<? extends T> plugins) {
@@ -172,7 +172,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#countPlugins()
* @see org.springframework.plugin.core.PluginRegistry#countPlugins()
*/
public int countPlugins() {
@@ -192,7 +192,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#contains(org.synyx.hera.core.Plugin)
* @see org.springframework.plugin.core.PluginRegistry#contains(org.springframework.plugin.core.Plugin)
*/
public boolean contains(T plugin) {
return this.plugins.contains(plugin);
@@ -200,7 +200,7 @@ public class SimplePluginRegistry<T extends Plugin<S>, S> implements MutablePlug
/*
* (non-Javadoc)
* @see org.synyx.hera.core.PluginRegistry#hasPluginFor(java.lang.Object)
* @see org.springframework.plugin.core.PluginRegistry#hasPluginFor(java.lang.Object)
*/
public boolean hasPluginFor(S delimter) {
return null != getPluginFor(delimter);

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.config;
package org.springframework.plugin.core.config;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -28,7 +28,7 @@ import org.w3c.dom.Element;
*/
public class PluginListDefinitionParser extends AbstractBeanDefinitionParser {
protected static final String PACKAGE = "org.synyx.hera.core.support.";
protected static final String PACKAGE = "org.springframework.plugin.core.support.";
/**
* Returns the name of the {@link org.springframework.beans.factory.config.BeanFactoryPostProcessor} to be registered.

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.config;
package org.springframework.plugin.core.config;
import org.springframework.beans.factory.xml.NamespaceHandlerSupport;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.config;
package org.springframework.plugin.core.config;
/**
@@ -26,7 +26,7 @@ public class PluginRegistryDefinitionParser extends PluginListDefinitionParser {
/*
* (non-Javadoc)
* @see org.synyx.hera.core.config.PluginListDefinitionParser#getPostProcessorName()
* @see org.springframework.plugin.core.config.PluginListDefinitionParser#getPostProcessorName()
*/
@Override
protected String getPostProcessorName() {

View File

@@ -1,5 +1,5 @@
/**
* This package contains configuration support classes to ease registry configuration with Spring namespaces.
*/
package org.synyx.hera.core.config;
package org.springframework.plugin.core.config;

View File

@@ -1,5 +1,5 @@
/**
* This package contains the core plugin API. It allows other modules implementing components that extend functionality defined by a plugin interface. Plugin clients can be equipped with plugin implementations.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.support;
package org.springframework.plugin.core.support;
import java.util.ArrayList;
import java.util.Collection;

View File

@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.synyx.hera.core.support;
package org.springframework.plugin.core.support;
import java.util.Collections;
import java.util.Comparator;

View File

@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.support;
package org.springframework.plugin.core.support;
import org.springframework.beans.factory.FactoryBean;
import org.synyx.hera.core.OrderAwarePluginRegistry;
import org.synyx.hera.core.Plugin;
import org.synyx.hera.core.PluginRegistry;
import org.springframework.plugin.core.OrderAwarePluginRegistry;
import org.springframework.plugin.core.Plugin;
import org.springframework.plugin.core.PluginRegistry;
/**
* {@link FactoryBean} to create {@link PluginRegistry} instances. Wraps a {@link BeanListFactoryBean}.

View File

@@ -1,5 +1,5 @@
/**
* This package contains support classes to create bean lists or plugin registry instances out of beans implementing a certain interface.
*/
package org.synyx.hera.core.support;
package org.springframework.plugin.core.support;

View File

@@ -1 +1 @@
http\://schemas.synyx.org/hera=org.synyx.hera.core.config.PluginNamespaceHandler
http\://www.springframework.org/schema/plugin=org.springframework.plugin.core.config.PluginNamespaceHandler

View File

@@ -1 +1 @@
http\://schemas.synyx.org/hera/hera.xsd=org/synyx/hera/core/config/hera.xsd
http\://www.springframework.org/schema/plugin/spring-plugin.xsd=org/springframework/plugin/core/config/spring-plugin.xsd

View File

@@ -1,4 +1,4 @@
# Tooling related information for the Hera namespace
http\://schemas.synyx.org/hera@name=Hera Namespace
http\://schemas.synyx.org/hera@prefix=hera
http\://schemas.synyx.org/hera@icon=org/springframework/beans/factory/xml/spring-beans.gif
# Tooling related information for the Spring Plugin namespace
http\://www.springframework.org/schema/plugin@name=Spring Plugin Namespace
http\://www.springframework.org/schema/plugin@prefix=plugin
http\://www.springframework.org/schema/plugin@icon=org/springframework/beans/factory/xml/spring-beans.gif

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns="http://schemas.synyx.org/hera" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<xsd:schema xmlns="http://www.springframework.org/schema/plugin" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:tool="http://www.springframework.org/schema/tool"
targetNamespace="http://schemas.synyx.org/hera" elementFormDefault="qualified"
targetNamespace="http://www.springframework.org/schema/plugin" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.springframework.org/schema/tool" />

View File

@@ -13,12 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.plugin.core.MutablePluginRegistry;
/**
* Unit test for implementations of {@link MutablePluginRegistry}.

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
@@ -25,6 +25,10 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.core.annotation.Order;
import org.springframework.plugin.core.MutablePluginRegistry;
import org.springframework.plugin.core.OrderAwarePluginRegistry;
import org.springframework.plugin.core.Plugin;
import org.springframework.plugin.core.PluginRegistry;
/**
* Unit test for {@link OrderAwarePluginRegistry} that especially concentrates on testing ordering functionality.
@@ -104,7 +108,7 @@ public class OrderAwarePluginRegistryUnitTest extends SimplePluginRegistryUnitTe
/*
* (non-Javadoc)
*
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(String delimiter) {
@@ -118,7 +122,7 @@ public class OrderAwarePluginRegistryUnitTest extends SimplePluginRegistryUnitTe
/*
* (non-Javadoc)
*
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(String delimiter) {

View File

@@ -13,7 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import org.springframework.plugin.core.Plugin;
/**
* @author Oliver Gierke

View File

@@ -13,7 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import org.springframework.plugin.core.PluginRegistry;
import org.springframework.plugin.core.SimplePluginRegistry;
/**
* @author Oliver Gierke

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
/**
* @author Oliver Gierke
@@ -22,7 +22,7 @@ public class SamplePluginImplementation implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(String delimiter) {
return "FOO".equals(delimiter);
@@ -30,7 +30,7 @@ public class SamplePluginImplementation implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.core.SamplePlugin#pluginMethod()
* @see org.springframework.plugin.core.SamplePlugin#pluginMethod()
*/
public void pluginMethod() {

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.synyx.hera.core;
package org.springframework.plugin.core;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
@@ -24,6 +24,9 @@ import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.springframework.plugin.core.MutablePluginRegistry;
import org.springframework.plugin.core.Plugin;
import org.springframework.plugin.core.SimplePluginRegistry;
/**
* Unit test for {@link SimplePluginRegistry}.
@@ -48,7 +51,7 @@ public class SimplePluginRegistryUnitTest extends AbstractMutablePluginRegistryU
/*
* (non-Javadoc)
* @see org.synyx.hera.core.AbstractMutablePluginRegistryUnitTest#getRegistry()
* @see org.springframework.plugin.core.AbstractMutablePluginRegistryUnitTest#getRegistry()
*/
@Override
protected MutablePluginRegistry<SamplePlugin, String> getRegistry() {

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.config;
package org.springframework.plugin.core.config;
import static org.junit.Assert.*;
@@ -23,11 +23,11 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.plugin.core.PluginRegistry;
import org.springframework.plugin.core.SamplePlugin;
import org.springframework.plugin.core.SamplePluginHost;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.synyx.hera.core.PluginRegistry;
import org.synyx.hera.core.SamplePlugin;
import org.synyx.hera.core.SamplePluginHost;
/**
* Integration test to simply check if the configuration gets parsed correctly.

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.core.support;
package org.springframework.plugin.core.support;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
@@ -29,6 +29,7 @@ import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.core.Ordered;
import org.springframework.plugin.core.support.BeanListFactoryBean;
/**
* Unit test for {@link BeanListFactoryBean}.

View File

@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:plugin="http://schemas.synyx.org/hera"
xmlns:plugin="http://www.springframework.org/schema/plugin"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://schemas.synyx.org/hera http://schemas.synyx.org/hera/hera.xsd">
http://www.springframework.org/schema/plugin http://www.springframework.org/schema/plugin/spring-plugin.xsd">
<plugin:list id="foo" class="org.synyx.hera.core.SamplePlugin" />
<plugin:list id="foo" class="org.springframework.plugin.core.SamplePlugin" />
<plugin:registry id="bar" class="org.synyx.hera.core.SamplePlugin" />
<plugin:registry id="bar" class="org.springframework.plugin.core.SamplePlugin" />
<bean class="org.synyx.hera.core.SamplePluginImplementation" />
<bean class="org.springframework.plugin.core.SamplePluginImplementation" />
<bean id="host" class="org.synyx.hera.core.SamplePluginHost">
<bean id="host" class="org.springframework.plugin.core.SamplePluginHost">
<property name="registry" ref="bar" />
</bean>
<bean id="otherHost" class="org.synyx.hera.core.SamplePluginHost">
<bean id="otherHost" class="org.springframework.plugin.core.SamplePluginHost">
<property name="registry">
<plugin:registry id="tadaa" class="org.synyx.hera.core.SamplePlugin" />
<plugin:registry id="tadaa" class="org.springframework.plugin.core.SamplePlugin" />
</property>
</bean>

View File

@@ -9,4 +9,4 @@ log4j.rootLogger=WARN, stdout
# Hibernate logging options (INFO only shows startup messages)
log4j.logger.org.springframework=INFO
log4j.logger.org.synyx.hera=DEBUG
log4j.logger.org.springframework.plugin=DEBUG

View File

@@ -1,11 +1,11 @@
Bundle-ManifestVersion: 2
Bundle-SymbolicName: ${project.artifactId}
Bundle-Name: ${project.name}
Bundle-Vendor: Synyx GmbH & Co. KG
Bundle-Vendor: SpringSource, a division of VMware
Bundle-Version: ${project.version}
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-RequiredExecutionEnvironment: J2SE-1.6
Export-Template:
${project.artifactId}.*;version="${project.version}"
org.springframework.plugin.core.*;version="${project.version}"
Import-Template:
org.springframework.*;version="${spring.version:[=.=.=.=,+2.0.0)}",
org.springframework.*;version="${spring.version:[=.=.=.=,+1.0.0)}",
org.w3c.dom.*;version="0.0.0"

View File

@@ -1,14 +1,15 @@
<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>
<parent>
<artifactId>org.synyx.hera</artifactId>
<groupId>org.synyx.hera</groupId>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin</artifactId>
<version>0.8.0.BUILD-SNAPSHOT</version>
</parent>
<groupId>org.synyx.hera</groupId>
<artifactId>org.synyx.hera.si</artifactId>
<version>0.8.0.BUILD-SNAPSHOT</version>
<name>Hera Spring Integration integration</name>
<artifactId>spring-plugin-si</artifactId>
<name>Spring Plugin Spring Integration integration</name>
<properties>
<spring.integration.version>2.0.5.RELEASE</spring.integration.version>
@@ -17,7 +18,7 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.synyx.hera.core</artifactId>
<artifactId>spring-plugin-core</artifactId>
<version>${project.version}</version>
</dependency>

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si;
package org.springframework.plugin.integration;
import java.lang.reflect.Method;
import java.util.ArrayList;
@@ -32,13 +32,13 @@ import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.integration.Message;
import org.springframework.integration.MessageHandlingException;
import org.springframework.integration.handler.AbstractReplyProducingMessageHandler;
import org.springframework.plugin.core.OrderAwarePluginRegistry;
import org.springframework.plugin.core.Plugin;
import org.springframework.plugin.core.PluginRegistry;
import org.springframework.util.Assert;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
import org.synyx.hera.core.OrderAwarePluginRegistry;
import org.synyx.hera.core.Plugin;
import org.synyx.hera.core.PluginRegistry;
/**
* Dynamic service activator that uses a {@link PluginRegistry} to delegate execution to one or more plugins matching a

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.config;
package org.springframework.plugin.integration.config;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
@@ -21,9 +21,9 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.xml.AbstractConsumerEndpointParser;
import org.springframework.plugin.core.support.PluginRegistryFactoryBean;
import org.springframework.plugin.integration.PluginRegistryAwareMessageHandler;
import org.springframework.util.StringUtils;
import org.synyx.hera.core.support.PluginRegistryFactoryBean;
import org.synyx.hera.si.PluginRegistryAwareMessageHandler;
import org.w3c.dom.Element;
/**

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.config;
package org.springframework.plugin.integration.config;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.NamespaceHandler;
@@ -24,7 +24,7 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
*
* @author Oliver Gierke
*/
public class HeraSpringIntegrationNamespaceHandler extends NamespaceHandlerSupport {
public class SpringPluginSpringIntegrationNamespaceHandler extends NamespaceHandlerSupport {
/*
* (non-Javadoc)

View File

@@ -0,0 +1 @@
http\://www.springframework.org/schema/plugin/integration=org.springframework.plugin.integration.config.SpringPluginSpringIntegrationNamespaceHandler

View File

@@ -0,0 +1 @@
http\://www.springframework.org/schema/plugin/integration/spring-plugin-integration.xsd=org/springframework/plugin/integration/config/spring-plugin-integration.xsd

View File

@@ -0,0 +1,4 @@
# Tooling related information for the Spring Plugin Integration namespace
http\://www.springframework.org/schema/plugin/integration@name=Spring Plugin Spring Integration Namespace
http\://www.springframework.org/schema/plugin/integration@prefix=int-plugin
http\://www.springframework.org/schema/plugin/integration@icon=org/springframework/beans/factory/xml/spring-beans.gif

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns="http://schemas.synyx.org/hera/si" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<xsd:schema xmlns="http://www.springframework.org/schema/plugin/integration" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:tool="http://www.springframework.org/schema/tool"
targetNamespace="http://schemas.synyx.org/hera/si" elementFormDefault="qualified"
targetNamespace="http://www.springframework.org/schema/plugin/integration" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.springframework.org/schema/tool" />
@@ -15,7 +15,7 @@
allows dynamic invocation of Spring beans implementing the plugin
interface defined in "plugin-type". We will dynamically pick up all
Spring beans implementing that interface and create a PluginRegistry
of those. See org.synyx.hera.si.PluginRegistryAwareMessageHandler for
of those. See org.springframework.plugin.integration.PluginRegistryAwareMessageHandler for
details.
</xsd:documentation>
</xsd:appinfo>

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si;
package org.springframework.plugin.integration;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
@@ -32,11 +32,12 @@ import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.MessageHandlingException;
import org.springframework.integration.support.MessageBuilder;
import org.synyx.hera.core.OrderAwarePluginRegistry;
import org.synyx.hera.core.PluginRegistry;
import org.synyx.hera.si.sample.FirstSamplePluginImpl;
import org.synyx.hera.si.sample.SamplePlugin;
import org.synyx.hera.si.sample.SecondSamplePluginImpl;
import org.springframework.plugin.core.OrderAwarePluginRegistry;
import org.springframework.plugin.core.PluginRegistry;
import org.springframework.plugin.integration.PluginRegistryAwareMessageHandler;
import org.springframework.plugin.integration.sample.FirstSamplePluginImpl;
import org.springframework.plugin.integration.sample.SamplePlugin;
import org.springframework.plugin.integration.sample.SecondSamplePluginImpl;
/**
* Unit tests for {@link PluginRegistryAwareMessageHandler}.

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.config;
package org.springframework.plugin.integration.config;
import org.junit.Test;
import org.junit.runner.RunWith;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.sample;
package org.springframework.plugin.integration.sample;
/**
* @author Oliver Gierke
@@ -22,7 +22,7 @@ public class FirstSamplePluginImpl implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(String delimiter) {
return "FOO".equals(delimiter);
@@ -30,7 +30,7 @@ public class FirstSamplePluginImpl implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.si.sample.SamplePlugin#myBusinessMethod()
* @see org.springframework.plugin.integration.sample.SamplePlugin#myBusinessMethod()
*/
public String myBusinessMethod(String message) {
System.out.println("First plugin invoked! " + message);

View File

@@ -13,9 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.sample;
package org.springframework.plugin.integration.sample;
import org.synyx.hera.core.Plugin;
import org.springframework.plugin.core.Plugin;
/**
* @author Oliver Gierke

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.sample;
package org.springframework.plugin.integration.sample;
import org.springframework.core.annotation.Order;
@@ -27,7 +27,7 @@ public class SecondSamplePluginImpl implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(String delimiter) {
return "BAR".equals(delimiter);
@@ -35,7 +35,7 @@ public class SecondSamplePluginImpl implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.si.sample.SamplePlugin#myBusinessMethod()
* @see org.springframework.plugin.integration.sample.SamplePlugin#myBusinessMethod()
*/
public String myBusinessMethod(String message) {
System.out.println("Second plugin invoked! " + message);

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.si.sample;
package org.springframework.plugin.integration.sample;
import org.springframework.core.annotation.Order;
@@ -27,7 +27,7 @@ class ThirdSamplePluginImpl implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(String delimiter) {
return "BAR".equals(delimiter);
@@ -35,7 +35,7 @@ class ThirdSamplePluginImpl implements SamplePlugin {
/*
* (non-Javadoc)
* @see org.synyx.hera.si.sample.SamplePlugin#myBusinessMethod()
* @see org.springframework.plugin.integration.sample.SamplePlugin#myBusinessMethod()
*/
public String myBusinessMethod(String message) {
System.out.println("Second plugin invoked! " + message);

View File

@@ -2,18 +2,18 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-hera="http://schemas.synyx.org/hera/si"
xmlns:int-plugin="http://www.springframework.org/schema/plugin/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://schemas.synyx.org/hera/si http://schemas.synyx.org/hera/si/hera-si.xsd">
http://www.springframework.org/schema/plugin/integration http://www.springframework.org/schema/plugin/integration/spring-plugin-integration.xsd">
<bean class="org.synyx.hera.si.sample.FirstSamplePluginImpl" />
<bean class="org.synyx.hera.si.sample.SecondSamplePluginImpl" />
<bean class="org.springframework.plugin.integration.sample.FirstSamplePluginImpl" />
<bean class="org.springframework.plugin.integration.sample.SecondSamplePluginImpl" />
<int-hera:dynamic-service-activator
<int-plugin:dynamic-service-activator
input-channel="sampleChannel"
output-channel="foo"
plugin-type="org.synyx.hera.si.sample.SamplePlugin"
plugin-type="org.springframework.plugin.integration.sample.SamplePlugin"
method="myBusinessMethod"
delimiter="payload"
invocation-arguments="payload" />

View File

@@ -1,14 +1,14 @@
Bundle-ManifestVersion: 2
Bundle-SymbolicName: ${project.artifactId}
Bundle-Name: ${project.name}
Bundle-Vendor: Synyx GmbH & Co. KG
Bundle-Vendor: SpringSource, a division of VMware
Bundle-Version: ${project.version}
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-RequiredExecutionEnvironment: J2SE-1.6
Export-Template:
${project.artifactId}.*;version="${project.version}"
org.springframework.plugin.integration.*;version="${project.version}"
Import-Template:
org.apache.commons.logging.*;version="[1.1.0,2.0.0)",
org.synyx.hera.core.*;version="${project.version:[=.=.=.=,+1.0.0)}",
org.springframework.*;version="${spring.version:[=.=.=.=,+2.0.0)}",
org.springframework.*;version="${spring.version:[=.=.=.=,+1.0.0)}",
org.springframework.integration.*;version="${spring.integration.version:[=.=.=.=,+1.0.0)}",
org.springframework.plugin.core.*;version="${project.version:[=.=.=.=,+1.0.0)}",
org.w3c.dom.*;version="0"

View File

@@ -1,20 +1,20 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>org.synyx.hera.metadata</artifactId>
<artifactId>spring-plugin-metadata</artifactId>
<name>Hera Metadata Extension</name>
<name>Spring Plugin Metadata Extension</name>
<description>Extension package for metadata based plugins</description>
<parent>
<artifactId>org.synyx.hera</artifactId>
<groupId>org.synyx.hera</groupId>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin</artifactId>
<version>0.8.0.BUILD-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.synyx.hera</groupId>
<artifactId>org.synyx.hera.core</artifactId>
<groupId>${project.groupId}</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>${project.version}</version>
</dependency>

View File

@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="metadata">
<title>Metadata</title>
<para>For plugin architectures it is essential to capture metadata
information about plugin instances. A very core set of metadata (name,
version) also serves as identifier of a plugin and thus can be used. The
Hera metadata module provides support to capture metadata.</para>
Spring Plugin metadata module provides support to capture metadata.</para>
<section id="metadata.core-concepts">
<title>Core concepts</title>
@@ -34,11 +36,11 @@ public interface MetadataProvider {
<para>The <interfacename>PluginMetadata</interfacename> interface captures
the required properties to define an identifyable plugin. This means, that
implementations should ensure uniqueness through these two properties.
With <classname>SimplePluginMetadata</classname> Hera provides a Java bean
style class to capture metadata. Of course applications can and should
provide extended metadata information according to their needs. The very
narrow interface is only targeted at integrating the metadata concept with
the <classname>PluginRegistry</classname> (see <xref
With <classname>SimplePluginMetadata</classname> Spring Plugin provides a
Java bean style class to capture metadata. Of course applications can and
should provide extended metadata information according to their needs. The
very narrow interface is only targeted at integrating the metadata concept
with the <classname>PluginRegistry</classname> (see <xref
linkend="core.plugin-registry" />) without bothering developers with too
much information required.</para>
@@ -52,4 +54,4 @@ public interface MetadataProvider {
could store the metadata in user specific configuration files and use this
to select a distinct plugin specific to a given user.</para>
</section>
</chapter>
</chapter>

View File

@@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.metadata;
package org.springframework.plugin.metadata;
import org.synyx.hera.core.Plugin;
import org.synyx.hera.core.PluginRegistry;
import org.springframework.plugin.core.Plugin;
import org.springframework.plugin.core.PluginRegistry;
/**
* Abstract base class for plugins based on {@link PluginMetadata}. Plugins based on this class can be selected from the
@@ -41,7 +41,7 @@ public abstract class AbstractMetadataBasedPlugin implements Plugin<PluginMetada
/*
* (non-Javadoc)
* @see org.synyx.hera.core.Plugin#supports(java.lang.Object)
* @see org.springframework.plugin.core.Plugin#supports(java.lang.Object)
*/
public boolean supports(PluginMetadata delimiter) {
return getMetadata().equals(delimiter);
@@ -49,7 +49,7 @@ public abstract class AbstractMetadataBasedPlugin implements Plugin<PluginMetada
/*
* (non-Javadoc)
* @see org.synyx.hera.metadata.MetadataProvider#getMetadata()
* @see org.springframework.plugin.metadata.MetadataProvider#getMetadata()
*/
public PluginMetadata getMetadata() {
return metadata;

View File

@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.synyx.hera.metadata;
package org.springframework.plugin.metadata;
/**
* Interface for plugins providing metadata information. Usually the plugins will implement this interface themselves.

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.synyx.hera.metadata;
package org.springframework.plugin.metadata;
/**
* Basic interface to define a set of metadata information for plugins.

View File

@@ -14,7 +14,7 @@
* the License.
*/
package org.synyx.hera.metadata;
package org.springframework.plugin.metadata;
import static org.springframework.util.ObjectUtils.*;
@@ -47,7 +47,7 @@ public class SimplePluginMetadata implements PluginMetadata {
/*
* (non-Javadoc)
* @see org.synyx.hera.metadata.PluginMetadata#getName()
* @see org.springframework.plugin.metadata.PluginMetadata#getName()
*/
public String getName() {
return name;
@@ -55,7 +55,7 @@ public class SimplePluginMetadata implements PluginMetadata {
/*
* (non-Javadoc)
* @see org.synyx.hera.metadata.PluginMetadata#getVersion()
* @see org.springframework.plugin.metadata.PluginMetadata#getVersion()
*/
public String getVersion() {
return version;

View File

@@ -1,11 +1,11 @@
Bundle-ManifestVersion: 2
Bundle-SymbolicName: ${project.artifactId}
Bundle-Name: ${project.name}
Bundle-Vendor: Synyx GmbH & Co. KG
Bundle-Vendor: SpringSource, a division of VMware
Bundle-Version: ${project.version}
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-RequiredExecutionEnvironment: J2SE-1.6
Export-Template:
${project.artifactId}.*;version="${project.version}"
org.springframework.plugin.metadata.*;version="${project.version}"
Import-Template:
org.synyx.hera.core.*;version="${project.version:[=.=.=.=,+1.0.0)}",
org.springframework.*;version="${spring.version:[=.=.=.=,+2.0.0)}"
org.springframework.*;version="${spring.version:[=.=.=.=,+1.0.0)}",
org.springframework.plugin.core.*;version="${project.version:[=.=.=.=,+1.0.0)}"

98
pom.xml
View File

@@ -1,18 +1,18 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.synyx.hera</groupId>
<artifactId>org.synyx.hera</artifactId>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin</artifactId>
<packaging>pom</packaging>
<name>Hera</name>
<name>Spring Plugin</name>
<version>0.8.0.BUILD-SNAPSHOT</version>
<description>Simple plugin infrastructure</description>
<organization>
<name>Synyx GmbH &amp; Co. KG</name>
<url>http://www.synyx.org</url>
<name>SpringSource, a division of VMware</name>
<url>http://www.springsource.org</url>
</organization>
<inceptionYear>2008</inceptionYear>
<url>http://hera.synyx.org</url>
<url>https://github.com/SpringSource/spring-plugin</url>
<licenses>
<license>
@@ -40,11 +40,11 @@
<modules>
<module>core</module>
<module>metadata</module>
<module>si</module>
<module>integration</module>
</modules>
<properties>
<spring.version>3.0.6.RELEASE</spring.version>
<spring.version>3.0.7.RELEASE</spring.version>
</properties>
<developers>
@@ -82,7 +82,6 @@
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
@@ -149,41 +148,6 @@
<htmlStylesheet>resources/styles.css</htmlStylesheet>
<chunkedOutput>true</chunkedOutput>
<fonts>
<font>
<name>StellaLining</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>${basedir}/src/doc/layout/pdf/fonts/SteLiR__.ttf</embedFile>
<metricsFile>${basedir}/src/doc/layout/pdf/fonts/SteLiR__.xml</metricsFile>
</font>
<font>
<name>StellaLining</name>
<style>italic</style>
<weight>normal</weight>
<embedFile>${basedir}/src/doc/layout/pdf/fonts/SteLiI__.ttf</embedFile>
<metricsFile>${basedir}/src/doc/layout/pdf/fonts/SteLiI__.xml</metricsFile>
</font>
<font>
<name>StellaLining</name>
<style>normal</style>
<weight>bold</weight>
<embedFile>${basedir}/src/doc/layout/pdf/fonts/SteLiB__.ttf</embedFile>
<metricsFile>${basedir}/src/doc/layout/pdf/fonts/SteLiB__.xml</metricsFile>
</font>
<font>
<name>StellaLining</name>
<style>italic</style>
<weight>bold</weight>
<embedFile>
${basedir}/src/doc/layout/pdf/fonts/SteLiBI_.ttf
</embedFile>
<metricsFile>
${basedir}/src/doc/layout/pdf/fonts/SteLiBI_.xml
</metricsFile>
</font>
</fonts>
<preProcess>
<copy todir="${basedir}/target/doc/images">
<!-- Copy layout images -->
@@ -327,48 +291,22 @@
</reporting>
<scm>
<url>http://svn.synyx.org/synyx/opensource/hera</url>
<connection>scm:svn:http://svn.synyx.org/synyx/opensource/hera</connection>
<developerConnection>scm:svn:https://svn.synyx.de/svn/synyx/opensource/hera</developerConnection>
<url>https://github.com/SpringSource/spring-plugin</url>
</scm>
<ciManagement>
<system>Hudson</system>
<system>Bamboo</system>
</ciManagement>
<issueManagement>
<system>Redmine</system>
<url>http://hera.synyx.org</url>
<system>Github</system>
<url>https://github.com/SpringSource/spring-plugin/issues</url>
</issueManagement>
<distributionManagement>
<site>
<id>static.synyx.org</id>
<url>scp://static.synyx.org/home/public/public_html/hera/site</url>
</site>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
<snapshotRepository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<repositories>
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>SpringSource Enterprise Bundle Repository - Release Bundles</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>SpringSource Enterprise Bundle Repository - External Bundles</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
<id>spring-release</id>
<url>http://repo.springsource.org/libs-release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
@@ -377,9 +315,11 @@
<pluginRepositories>
<pluginRepository>
<id>com.springsource.repository.bundles.release</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Release Bundles</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
<id>spring-plugins</id>
<url>http://repo.springsource.org/plugins-release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

View File

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>1</version>
<pluginVersion><![CDATA[2.6.0.201104111100-PATCH]]></pluginVersion>
<configSuffixes>
<configSuffix><![CDATA[xml]]></configSuffix>
</configSuffixes>
<enableImports><![CDATA[false]]></enableImports>
<configs>
</configs>
<configSets>
</configSets>
</beansProjectDescription>

View File

@@ -1 +0,0 @@
http\://schemas.synyx.org/hera/si=org.synyx.hera.si.config.HeraSpringIntegrationNamespaceHandler

View File

@@ -1 +0,0 @@
http\://schemas.synyx.org/hera/si/hera-si.xsd=org/synyx/hera/si/config/hera-si.xsd

View File

@@ -1,4 +0,0 @@
# Tooling related information for the Hera namespace
http\://schemas.synyx.org/hera/si@name=Hera Spring Integration Namespace
http\://schemas.synyx.org/hera/si@prefix=int-hera
http\://schemas.synyx.org/hera/si@icon=org/springframework/beans/factory/xml/spring-beans.gif

View File

@@ -43,9 +43,6 @@
</fo:table-row>
<fo:table-row>
<fo:table-cell text-align="center">
<fo:block>
<fo:external-graphic src="file:target/doc/images/synyx-logo.tiff" width="70mm" height="auto" content-width="scale-to-fit" content-height="scale-to-fit" />
</fo:block>
<fo:block font-size="12pt" padding="10mm">
<xsl:for-each select="bookinfo/authorgroup/author">
<xsl:if test="position() &gt; 1">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
<!ENTITY core SYSTEM "../../core/src/doc/core.xml">
<!ENTITY metadata SYSTEM "../../metadata/src/doc/metadata.xml">
]>
<!-- PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<book>
<bookinfo>
<title>Hera</title>
<title>Spring Plugin</title>
<subtitle>The smallest plugin system ever</subtitle>
@@ -18,25 +14,23 @@
<surname>Gierke</surname>
<affiliation>
<jobtitle>Software Architect</jobtitle>
<jobtitle>Senior Member Technical Staff</jobtitle>
<orgname>Synyx GmbH &amp; Co. KG</orgname>
<orgname>SpringSource, a division of VMware</orgname>
</affiliation>
<email>gierke@synyx.de</email>
<address>Karlstraße 68, 76137 Karsruhe, Germany</address>
<email>ogierke (at) vmware.com</email>
</author>
</authorgroup>
<releaseinfo>V0.4</releaseinfo>
<releaseinfo>V0.8</releaseinfo>
<pubdate>23.09.2009</pubdate>
<copyright>
<year>2009</year>
<year>2008-2012</year>
<holder>Synyx GmbH &amp; Co. KG</holder>
<holder>The original authors</holder>
</copyright>
<revhistory>
@@ -87,6 +81,18 @@
<revremark>Added section on plugin ordering</revremark>
</revision>
<revision>
<date>21.02.2012</date>
<author>
<firstname>Oliver</firstname>
<surname>Gierke</surname>
</author>
<revremark>Move project to SpringSource</revremark>
</revision>
</revhistory>
</bookinfo>
@@ -103,13 +109,14 @@
<glossterm><abbrev>OSGi</abbrev></glossterm> introduces a lot of
complexity to projects.</para>
<para>Hera provides a more pragmatic approach to plugin development by
providing the core flexibility of having plugin implementations
extending a core system's functionality but of course not delivering
core <abbrev>OSGi</abbrev> features like dynamic class loading or
runtime installation and deployment of plugins. Although Hera thus is
not nearly as powerful as <abbrev>OSGi</abbrev>, it servers little man's
requirements to build a modular extensible application.</para>
<para>Spring Plugin provides a more pragmatic approach to plugin
development by providing the core flexibility of having plugin
implementations extending a core system's functionality but of course
not delivering core <abbrev>OSGi</abbrev> features like dynamic class
loading or runtime installation and deployment of plugins. Although
Spring Plugin thus is not nearly as powerful as <abbrev>OSGi</abbrev>,
it servers poor man's requirements to build a modular extensible
application.</para>
</section>
<section id="preface.context">
@@ -142,8 +149,8 @@
</listitem>
</itemizedlist></para>
<para>The last point actually is not essential although Hera gains a lot
of momentum in collaborative use with Spring.</para>
<para>The last point actually is not essential although Spring Plugin
gains a lot of momentum in collaborative use with Spring.</para>
</section>
<section>
@@ -155,16 +162,18 @@
<para>Spring is the defacto standard application framework for Java
applications. Its consistent programming model, easy configuration and
wide support for all kinds of third party libraries makes it the first
class citizen of application frameworks. Hera tightly integrates into
Spring's component model and extends the core container with some
custom functionality.</para>
class citizen of application frameworks. Spring Plugin tightly
integrates into Spring's component model and extends the core
container with some custom functionality.</para>
</simplesect>
</section>
</preface>
&core;
<xi:include href="../../core/src/doc/core.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
&metadata;
<xi:include href="../../metadata/src/doc/metadata.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<glossary>
<glossdiv>
@@ -201,4 +210,4 @@
</glossentry>
</glossdiv>
</glossary>
</book>
</book>