You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by ah...@apache.org on 2006/11/03 09:54:34 UTC
svn commit: r470727 - in /hivemind/branches/branch-2-0-annot/xml/src:
descriptor/META-INF/ java/org/apache/hivemind/
java/org/apache/hivemind/ant/ java/org/apache/hivemind/impl/
java/org/apache/hivemind/impl/natures/ java/org/apache/hivemind/schema/rul...
Author: ahuegen
Date: Fri Nov 3 00:54:32 2006
New Revision: 470727
URL: http://svn.apache.org/viewvc?view=rev&rev=470727
Log:
Made TranslatorManager an ordinary service.
It is defined in the new XmlCoreServicesProvider which is autoloaded.
Added:
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/HivemoduleProvider.java
- copied, changed from r470270, hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlRegistryProvider.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java
Removed:
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlRegistryProvider.java
Modified:
hivemind/branches/branch-2-0-annot/xml/src/descriptor/META-INF/MANIFEST.MF
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/TranslatorManager.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ant/ConstructRegistry.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryInterceptorConstructor.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/SchemaProcessorImpl.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/TranslatorManagerImpl.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlContributionImpl.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/natures/XmlRegistryNature.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/schema/rules/RuleUtils.java
hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java
hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestInvokeFactoryServiceConstructor.java
hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestSchemaProcessor.java
hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestTranslatorManager.java
hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/service/impl/TestBuilderPropertyFacet.java
Modified: hivemind/branches/branch-2-0-annot/xml/src/descriptor/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/descriptor/META-INF/MANIFEST.MF?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/descriptor/META-INF/MANIFEST.MF (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/descriptor/META-INF/MANIFEST.MF Fri Nov 3 00:54:32 2006
@@ -1,2 +1,2 @@
-hivemind-provider: org.apache.hivemind.impl.XmlRegistryProvider
+hivemind-providers: org.apache.hivemind.impl.HivemoduleProvider,org.apache.hivemind.impl.XmlCoreServicesProvider
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/TranslatorManager.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/TranslatorManager.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/TranslatorManager.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/TranslatorManager.java Fri Nov 3 00:54:32 2006
@@ -2,9 +2,19 @@
import org.apache.hivemind.schema.Translator;
+/**
+ * Manages translators for {@link org.apache.hivemind.impl.RegistryInfrastructureImpl}.
+ * Translators may be a shared, cached instance.
+ * (Translators should be stateless). Translators are identified by a constructor, which may be
+ * the name of a translator defined in the <code>hivemind.Translators</code> extension point
+ * (a single builtin translator, <code>class</code>, is hardcoded). Alternately, the name may
+ * consist of a translator name, a comma, and an initializer string for the service (example:
+ * <code>int,min=5</code>).
+ *
+ * @author Howard Lewis Ship
+ */
public interface TranslatorManager
{
-
public abstract Translator getTranslator(String constructor);
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ant/ConstructRegistry.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ant/ConstructRegistry.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ant/ConstructRegistry.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ant/ConstructRegistry.java Fri Nov 3 00:54:32 2006
@@ -25,7 +25,7 @@
import org.apache.hivemind.definition.RegistryDefinition;
import org.apache.hivemind.impl.RegistryBuilder;
import org.apache.hivemind.impl.XmlModuleReader;
-import org.apache.hivemind.impl.XmlRegistryProvider;
+import org.apache.hivemind.impl.HivemoduleProvider;
import org.apache.hivemind.util.FileResource;
import org.apache.hivemind.util.URLResource;
import org.apache.tools.ant.BuildException;
@@ -142,7 +142,7 @@
private void enqueueJar(File jarFile, RegistryDefinition definition) throws IOException
{
- URL jarRootURL = new URL("jar:" + jarFile.toURL() + "!/" + XmlRegistryProvider.HIVE_MODULE_XML);
+ URL jarRootURL = new URL("jar:" + jarFile.toURL() + "!/" + HivemoduleProvider.HIVE_MODULE_XML);
Resource jarResource = new URLResource(jarRootURL);
enqueue(jarResource, definition);
Copied: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/HivemoduleProvider.java (from r470270, hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlRegistryProvider.java)
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/HivemoduleProvider.java?view=diff&rev=470727&p1=hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlRegistryProvider.java&r1=470270&p2=hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/HivemoduleProvider.java&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlRegistryProvider.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/HivemoduleProvider.java Fri Nov 3 00:54:32 2006
@@ -6,9 +6,13 @@
import org.apache.hivemind.ErrorHandler;
import org.apache.hivemind.definition.RegistryDefinition;
-public class XmlRegistryProvider implements RegistryProvider
+/**
+ * Implementation of {@link RegistryProvider} that loads all xml modules
+ * defined in <code>META-INF/hivemodule.xml</code> files.
+ */
+public class HivemoduleProvider implements RegistryProvider
{
- private static final Log LOG = LogFactory.getLog(RegistryBuilder.class);
+ private static final Log LOG = LogFactory.getLog(HivemoduleProvider.class);
/**
* The default path, within a JAR or the classpath, to the XML HiveMind module deployment
@@ -21,12 +25,12 @@
private String _resourcePath;
- public XmlRegistryProvider()
+ public HivemoduleProvider()
{
this(new DefaultClassResolver(), HIVE_MODULE_XML);
}
- public XmlRegistryProvider(ClassResolver classResolver, String resourcePath)
+ public HivemoduleProvider(ClassResolver classResolver, String resourcePath)
{
_classResolver = classResolver;
_resourcePath = resourcePath;
@@ -41,5 +45,5 @@
xmlModuleReader.readClassPathModules(_resourcePath);
}
-
+
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryInterceptorConstructor.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryInterceptorConstructor.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryInterceptorConstructor.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryInterceptorConstructor.java Fri Nov 3 00:54:32 2006
@@ -22,7 +22,6 @@
import org.apache.hivemind.Orderable;
import org.apache.hivemind.ServiceInterceptorFactory;
import org.apache.hivemind.TranslatorManager;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.impl.natures.XmlServicePointNature;
import org.apache.hivemind.internal.AbstractServiceInterceptorConstructor;
import org.apache.hivemind.internal.Module;
@@ -90,9 +89,6 @@
// TODO annotations: Externalize message
throw new ApplicationRuntimeException("ServicePoint has no xml nature");
}
- XmlRegistryNature xmlRegistryNature = (XmlRegistryNature) contributingModule.getRegistry().getNature(XmlRegistryNature.class);
- TranslatorManager translatorManager = xmlRegistryNature.getTranslationManager();
-
Schema schema = xmlNature.getParametersSchema();
if (schema != null) {
@@ -100,7 +96,7 @@
schema);
_convertedParameters = constructParametersContainer(schema.getRootElementClassName(), factoryPoint.getModule());
- processor.process(_convertedParameters, _parameters, contributingModule, translatorManager);
+ processor.process(_convertedParameters, _parameters, contributingModule);
}
}
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java Fri Nov 3 00:54:32 2006
@@ -24,7 +24,6 @@
import org.apache.hivemind.ServiceImplementationFactoryParameters;
import org.apache.hivemind.TranslatorManager;
import org.apache.hivemind.definition.construction.ImplementationConstructionContext;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.impl.natures.XmlServicePointNature;
import org.apache.hivemind.internal.AbstractServiceImplementationConstructor;
import org.apache.hivemind.internal.Module;
@@ -91,9 +90,6 @@
// TODO annotations:
throw new ApplicationRuntimeException("ServicePoint has no xml nature");
}
- XmlRegistryNature xmlRegistryNature = (XmlRegistryNature) contributingModule.getRegistry().getNature(XmlRegistryNature.class);
- TranslatorManager translatorManager = xmlRegistryNature.getTranslationManager();
-
_factory = (ServiceImplementationFactory) factoryPoint
.getService(ServiceImplementationFactory.class);
@@ -104,9 +100,9 @@
checkParameterCounts(errorLog, expected);
SchemaProcessorImpl processor = new SchemaProcessorImpl(errorLog, schema);
-
+
_convertedParameters = constructParametersContainer(schema.getRootElementClassName(), factoryPoint.getModule());
- processor.process(_convertedParameters, _parameters, contributingModule, translatorManager);
+ processor.process(_convertedParameters, _parameters, contributingModule);
}
}
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/SchemaProcessorImpl.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/SchemaProcessorImpl.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/SchemaProcessorImpl.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/SchemaProcessorImpl.java Fri Nov 3 00:54:32 2006
@@ -217,8 +217,7 @@
* Processes a single extension.
* @param container the container object in that the parsed elements are placed
*/
- public void process(Object container, List elements, Module contributingModule,
- TranslatorManager translatorManager)
+ public void process(Object container, List elements, Module contributingModule)
{
if (elements == null)
return;
@@ -238,7 +237,6 @@
push(container);
_contributingModule = contributingModule;
- _translatorManager = translatorManager;
int count = elements.size();
@@ -321,6 +319,10 @@
public Translator getTranslator(String translator)
{
+ if (_translatorManager == null) {
+ _translatorManager = (TranslatorManager) _contributingModule.getService(TranslatorManager.class);
+ }
+
return _translatorManager.getTranslator(translator);
}
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/TranslatorManagerImpl.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/TranslatorManagerImpl.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/TranslatorManagerImpl.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/TranslatorManagerImpl.java Fri Nov 3 00:54:32 2006
@@ -26,7 +26,6 @@
import org.apache.hivemind.ErrorHandler;
import org.apache.hivemind.Location;
import org.apache.hivemind.TranslatorManager;
-import org.apache.hivemind.internal.RegistryInfrastructure;
import org.apache.hivemind.schema.Translator;
import org.apache.hivemind.schema.rules.ClassTranslator;
import org.apache.hivemind.schema.rules.InstanceTranslator;
@@ -34,15 +33,7 @@
import org.apache.hivemind.schema.rules.SmartTranslator;
/**
- * Manages translators for {@link org.apache.hivemind.impl.RegistryInfrastructureImpl}.
- * Translators may be a shared, cached instance.
- * (Translators should be stateless). Translators are identified by a constructor, which may be
- * the name of a translator defined in the <code>hivemind.Translators</code> extension point
- * (a single builtin translator, <code>class</code>, is hardcoded). Alternately, the name may
- * consist of a translator name, a comma, and an initializer string for the service (example:
- * <code>int,min=5</code>).
- *
- * @author Howard Lewis Ship
+ * Implementation of {@link TranslatorManager}
*/
public class TranslatorManagerImpl implements TranslatorManager
{
@@ -52,8 +43,6 @@
private ErrorHandler _errorHandler;
- private RegistryInfrastructure _registry;
-
/**
* Map of Class, keyed on translator name, used to instantiate new
* {@link org.apache.hivemind.schema.Translator}s. Loaded from the
@@ -63,11 +52,18 @@
private Map _translatorsCache = new HashMap();
+ private List _contributedTranslators;
+
private boolean _translatorsLoaded;
+
+ public TranslatorManagerImpl(List translators)
+ {
+ this(translators, new DefaultErrorHandler());
+ }
- public TranslatorManagerImpl(RegistryInfrastructure registry, ErrorHandler errorHandler)
+ public TranslatorManagerImpl(List translators, ErrorHandler errorHandler)
{
- _registry = registry;
+ _contributedTranslators = translators;
_errorHandler = errorHandler;
// Seed the basic translators used to "bootstrap" the
@@ -93,7 +89,7 @@
// The cache is preloaded with the hardcoded translators.
if (!_translatorsLoaded && !_translatorsCache.containsKey(constructor))
- loadTranslators();
+ loadContributedTranslators();
Translator result = (Translator) _translatorsCache.get(constructor);
@@ -160,18 +156,21 @@
return result;
}
- private void loadTranslators()
+ /**
+ * Load the contributed translators. This is done as late as possible since the
+ * parsing of the xml contributes will trigger a recursive call. The configuration
+ * is lazy so that parsing is executed on first element access.
+ */
+ private void loadContributedTranslators()
{
// Prevent endless recursion!
_translatorsLoaded = true;
- List contributions = (List) _registry.getConfiguration(TRANSLATORS_CONFIGURATION_ID, null);
-
Map locations = new HashMap();
locations.put("class", null);
- Iterator i = contributions.iterator();
+ Iterator i = _contributedTranslators.iterator();
while (i.hasNext())
{
TranslatorContribution c = (TranslatorContribution) i.next();
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlContributionImpl.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlContributionImpl.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlContributionImpl.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlContributionImpl.java Fri Nov 3 00:54:32 2006
@@ -23,7 +23,6 @@
import org.apache.hivemind.definition.construction.ContributionConstructionContext;
import org.apache.hivemind.definition.construction.ContributionConstructor;
import org.apache.hivemind.impl.natures.XmlConfigurationPointNature;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.internal.Module;
import org.apache.hivemind.schema.Schema;
@@ -77,13 +76,10 @@
Module contributingModule = context.getDefiningModule();
- XmlRegistryNature xmlRegistryNature = (XmlRegistryNature) contributingModule.getRegistry().getNature(XmlRegistryNature.class);
- TranslatorManager translatorManager = xmlRegistryNature.getTranslationManager();
-
Schema contributionsSchema = xmlNature.getSchema();
if (contributionsSchema != null) {
SchemaProcessorImpl processor = new SchemaProcessorImpl(context.getConfigurationPoint().getErrorLog(), contributionsSchema);
- processor.process(container, getElements(), contributingModule, translatorManager);
+ processor.process(container, getElements(), contributingModule);
} else {
// Expect a list that was created by {@link XmlConfigurationConstructor} for
// backward compatibility reasons
Added: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java?view=auto&rev=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java (added)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java Fri Nov 3 00:54:32 2006
@@ -0,0 +1,65 @@
+package org.apache.hivemind.impl;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.ErrorHandler;
+import org.apache.hivemind.TranslatorManager;
+import org.apache.hivemind.definition.ModuleDefinition;
+import org.apache.hivemind.definition.ModuleDefinitionHelper;
+import org.apache.hivemind.definition.RegistryDefinition;
+import org.apache.hivemind.definition.ServicePointDefinition;
+import org.apache.hivemind.definition.construction.ImplementationConstructionContext;
+import org.apache.hivemind.definition.construction.ImplementationConstructor;
+import org.apache.hivemind.internal.AbstractServiceImplementationConstructor;
+import org.apache.hivemind.internal.ServiceModel;
+
+/**
+ * Implementation of {@link RegistryProvider} that defines core services
+ * needed by the xml implementation. Theses services can not be defined in
+ * xml because that would cause recursive behaviour.
+ */
+public class XmlCoreServicesProvider implements RegistryProvider
+{
+ private static final Log LOG = LogFactory.getLog(XmlCoreServicesProvider.class);
+
+ public void process(RegistryDefinition registryDefinition, ErrorHandler errorHandler)
+ {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Adding xml core services to registry");
+ }
+
+ // The "hivemind" module is available here only if the HivemoduleProvider
+ // has been executed before. This order is defined in the MANIFEST.MF file of the xml module
+ ModuleDefinition moduleDefinition = registryDefinition.getModule("hivemind");
+ if (moduleDefinition == null) {
+ throw new ApplicationRuntimeException("Module 'hivemind' not found.");
+ }
+ addTranslatorManager(moduleDefinition, errorHandler);
+ }
+
+ /**
+ * @see TranslatorManager
+ */
+ private void addTranslatorManager(ModuleDefinition md, final ErrorHandler errorHandler)
+ {
+ ModuleDefinitionHelper helper = new ModuleDefinitionHelper(md);
+ ServicePointDefinition spd = helper.addServicePoint("TranslationManager", TranslatorManager.class.getName());
+
+ // Define inline implementation constructor, that wires the Translators configuration
+ ImplementationConstructor constructor = new AbstractServiceImplementationConstructor(md.getLocation())
+ {
+ public Object constructCoreServiceImplementation(ImplementationConstructionContext context)
+ {
+ List translators = (List) context.getConfiguration("Translators");
+ TranslatorManager result = new TranslatorManagerImpl(translators, errorHandler);
+ return result;
+ }
+ };
+ helper.addServiceImplementation(spd, constructor, ServiceModel.PRIMITIVE);
+
+ }
+
+}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java Fri Nov 3 00:54:32 2006
@@ -104,7 +104,7 @@
private void initXmlRegistryNature()
{
if (getXmlRegistryNature() == null) {
- _registryDefinition.addNature(XmlRegistryNature.class, new XmlRegistryNature(_errorHandler));
+ _registryDefinition.addNature(XmlRegistryNature.class, new XmlRegistryNature());
}
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/natures/XmlRegistryNature.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/natures/XmlRegistryNature.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/natures/XmlRegistryNature.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/natures/XmlRegistryNature.java Fri Nov 3 00:54:32 2006
@@ -5,16 +5,12 @@
import java.util.Map;
import org.apache.hivemind.ErrorHandler;
-import org.apache.hivemind.TranslatorManager;
import org.apache.hivemind.definition.RegistryNature;
-import org.apache.hivemind.impl.TranslatorManagerImpl;
import org.apache.hivemind.internal.RegistryInfrastructure;
import org.apache.hivemind.schema.Schema;
public class XmlRegistryNature implements RegistryNature
{
- private TranslatorManager _translationManager;
- private ErrorHandler _errorHandler;
private RegistryInfrastructure _registry;
/**
@@ -22,25 +18,10 @@
*/
private Map _schemas = new HashMap();
- public XmlRegistryNature(ErrorHandler handler)
+ public XmlRegistryNature()
{
- _errorHandler = handler;
}
- public TranslatorManager getTranslationManager()
- {
- if (_translationManager == null) {
- _translationManager = new TranslatorManagerImpl(_registry, _errorHandler);
- }
-
- return _translationManager;
- }
-
- public void setTranslationManager(TranslatorManager translationManager)
- {
- _translationManager = translationManager;
- }
-
public void addSchema(String qualifiedSchemaId, Schema schema)
{
_schemas.put(qualifiedSchemaId, schema);
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/schema/rules/RuleUtils.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/schema/rules/RuleUtils.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/schema/rules/RuleUtils.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/schema/rules/RuleUtils.java Fri Nov 3 00:54:32 2006
@@ -24,8 +24,6 @@
import org.apache.hivemind.Element;
import org.apache.hivemind.ErrorHandler;
import org.apache.hivemind.HiveMind;
-import org.apache.hivemind.TranslatorManager;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.internal.Module;
import org.apache.hivemind.schema.SchemaProcessor;
import org.apache.hivemind.schema.Translator;
@@ -152,9 +150,6 @@
if (translator == null)
return new NullTranslator();
- XmlRegistryNature xmlNature = (XmlRegistryNature) processor.getContributingModule().getRegistry().getNature(XmlRegistryNature.class);
- TranslatorManager translatorManager = xmlNature.getTranslationManager();
-
- return translatorManager.getTranslator(translator);
+ return processor.getTranslator(translator);
}
}
Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java Fri Nov 3 00:54:32 2006
@@ -20,7 +20,6 @@
import org.apache.hivemind.Location;
import org.apache.hivemind.ServiceImplementationFactoryParameters;
import org.apache.hivemind.TranslatorManager;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.internal.Module;
import org.apache.hivemind.schema.Translator;
import org.apache.hivemind.util.ConstructorUtils;
@@ -51,8 +50,7 @@
if (result == null)
{
- XmlRegistryNature xmlNature = (XmlRegistryNature) factoryParameters.getInvokingModule().getRegistry().getNature(XmlRegistryNature.class);
- TranslatorManager translatorManager = xmlNature.getTranslationManager();
+ TranslatorManager translatorManager = (TranslatorManager) factoryParameters.getInvokingModule().getService(TranslatorManager.class);
Translator translator = translatorManager.getTranslator(_translatorName);
result = translator.translate(
Modified: hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestInvokeFactoryServiceConstructor.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestInvokeFactoryServiceConstructor.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestInvokeFactoryServiceConstructor.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestInvokeFactoryServiceConstructor.java Fri Nov 3 00:54:32 2006
@@ -27,11 +27,9 @@
import org.apache.hivemind.Registry;
import org.apache.hivemind.ServiceImplementationFactory;
import org.apache.hivemind.definition.construction.ImplementationConstructionContext;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.impl.natures.XmlServicePointNature;
import org.apache.hivemind.internal.ImplementationConstructionContextImpl;
import org.apache.hivemind.internal.Module;
-import org.apache.hivemind.internal.RegistryInfrastructure;
import org.apache.hivemind.internal.ServicePoint;
import org.apache.hivemind.schema.impl.SchemaImpl;
import org.apache.hivemind.xml.XmlTestCase;
@@ -49,9 +47,6 @@
MockControl moduleControl = newControl(Module.class);
Module module = (Module) moduleControl.getMock();
- MockControl registryControl = newControl(RegistryInfrastructure.class);
- RegistryInfrastructure registry = (RegistryInfrastructure) registryControl.getMock();
-
MockControl factoryPointControl = newControl(ServicePoint.class);
ServicePoint factoryPoint = (ServicePoint) factoryPointControl.getMock();
@@ -69,9 +64,6 @@
xmlNature.setParametersCount(Occurances.REQUIRED);
xmlNature.setParametersSchema(schema);
- MockControl xmlRegistryNatureControl = newControl(XmlRegistryNature.class);
- XmlRegistryNature xmlRegistryNature = (XmlRegistryNature) xmlRegistryNatureControl.getMock();
-
Location location = newLocation();
InvokeFactoryServiceConstructor c = new InvokeFactoryServiceConstructor(location, "module");
@@ -88,12 +80,6 @@
module.getServicePoint("foo.bar.Baz");
moduleControl.setReturnValue(factoryPoint);
- module.getRegistry();
- moduleControl.setReturnValue(registry);
-
- registry.getNature(XmlRegistryNature.class);
- registryControl.setReturnValue(xmlRegistryNature);
-
module.resolveType(ArrayList.class.getName());
moduleControl.setReturnValue(ArrayList.class);
@@ -103,9 +89,6 @@
factoryPoint.getModule();
factoryPointControl.setReturnValue(module);
- xmlRegistryNature.getTranslationManager();
- xmlRegistryNatureControl.setReturnValue(null);
-
String message = XmlImplMessages
.wrongNumberOfParameters("foo.bar.Baz", 0, Occurances.REQUIRED);
Modified: hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestSchemaProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestSchemaProcessor.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestSchemaProcessor.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestSchemaProcessor.java Fri Nov 3 00:54:32 2006
@@ -99,6 +99,9 @@
m.expandSymbols("flintstone", null);
control.setReturnValue("flintstone");
+
+ m.getService(TranslatorManager.class);
+ control.setReturnValue(tm);
tm.getTranslator("smart");
tmControl.setReturnValue(new NullTranslator());
@@ -106,7 +109,7 @@
replayControls();
List dest = new ArrayList();
- p.process(dest, elements, m, tm);
+ p.process(dest, elements, m);
assertEquals(1, dest.size());
StringHolder h = (StringHolder) dest.get(0);
@@ -124,9 +127,6 @@
MockControl registryControl = newControl(RegistryInfrastructure.class);
RegistryInfrastructure registry = (RegistryInfrastructure) registryControl.getMock();
- MockControl tmControl = newControl(TranslatorManager.class);
- TranslatorManager tm = (TranslatorManager) tmControl.getMock();
-
ElementModelImpl em = new ElementModelImpl("module");
em.setElementName("fred");
@@ -167,7 +167,7 @@
replayControls();
List dest = new ArrayList();
- p.process(dest, elements, m, tm);
+ p.process(dest, elements, m);
assertEquals(1, dest.size());
StringHolder h = (StringHolder) dest.get(0);
@@ -229,6 +229,9 @@
m.expandSymbols("wilma", null);
control.setReturnValue("wilma");
+
+ m.getService(TranslatorManager.class);
+ control.setReturnValue(tm);
tm.getTranslator("service");
tmControl.setReturnValue(new NullTranslator());
@@ -236,7 +239,7 @@
replayControls();
List dest = new ArrayList();
- p.process(dest, elements, m, tm);
+ p.process(dest, elements, m);
assertEquals(1, dest.size());
StringHolder h = (StringHolder) dest.get(0);
@@ -338,6 +341,9 @@
tm.getTranslator("cartoon");
tmControl.setReturnValue(t);
+ m.getService(TranslatorManager.class);
+ control.setReturnValue(tm);
+
Object flintstoneKey = new Object();
t.translate(m, Object.class, "flintstone", element.getLocation());
tControl.setReturnValue(flintstoneKey);
@@ -345,7 +351,7 @@
replayControls();
Map dest = new HashMap();
- p.process(dest, elements, m, tm);
+ p.process(dest, elements, m);
assertEquals(1, dest.size());
StringHolder h = (StringHolder) dest.get(flintstoneKey);
@@ -438,6 +444,9 @@
m1.expandSymbols("flintstone", location1);
control1.setReturnValue("flintstone");
+ m1.getService(TranslatorManager.class);
+ control1.setReturnValue(tm);
+
m1.expandSymbols("flintstone", location1);
control1.setReturnValue("flintstone");
@@ -468,11 +477,11 @@
tm.getTranslator("qualified-id");
tmControl.setReturnValue(t2);
-
+
String flintstoneKeyModule2 = "m2.flintstone";
t2.translate(m2, String.class, "flintstone", element2.getLocation());
tControl2.setReturnValue(flintstoneKeyModule2);
-
+
t2.translate(m2, Object.class, "flintstone", element2.getLocation());
tControl2.setReturnValue(flintstoneKeyModule2);
@@ -483,8 +492,8 @@
replayControls();
Map dest = new HashMap();
- p.process(dest, elements1, m1, tm);
- p.process(dest, elements2, m2, tm);
+ p.process(dest, elements1, m1);
+ p.process(dest, elements2, m2);
assertEquals(2, dest.size());
Modified: hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestTranslatorManager.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestTranslatorManager.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestTranslatorManager.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/impl/TestTranslatorManager.java Fri Nov 3 00:54:32 2006
@@ -19,9 +19,7 @@
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ErrorHandler;
-import org.apache.hivemind.internal.RegistryInfrastructure;
import org.apache.hivemind.test.HiveMindTestCase;
-import org.easymock.MockControl;
/**
* Tests for {@link org.apache.hivemind.impl.TranslatorManagerImpl}.
@@ -30,25 +28,12 @@
*/
public class TestTranslatorManager extends HiveMindTestCase
{
- protected RegistryInfrastructure createRegistryForContribution(TranslatorContribution tc)
- {
- List l = Collections.singletonList(tc);
-
- MockControl c = newControl(RegistryInfrastructure.class);
- RegistryInfrastructure result = (RegistryInfrastructure) c.getMock();
-
- result.getConfiguration(TranslatorManagerImpl.TRANSLATORS_CONFIGURATION_ID, null);
- c.setReturnValue(l);
-
- return result;
- }
-
public void testNoClassOrService()
{
TranslatorContribution tc = new TranslatorContribution();
tc.setName("invalid");
- RegistryInfrastructure r = createRegistryForContribution(tc);
+ List l = Collections.singletonList(tc);
ErrorHandler eh = (ErrorHandler) newMock(ErrorHandler.class);
@@ -61,7 +46,7 @@
replayControls();
- TranslatorManagerImpl tm = new TranslatorManagerImpl(r, eh);
+ TranslatorManagerImpl tm = new TranslatorManagerImpl(l, eh);
try
{
Modified: hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/service/impl/TestBuilderPropertyFacet.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/service/impl/TestBuilderPropertyFacet.java?view=diff&rev=470727&r1=470726&r2=470727
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/service/impl/TestBuilderPropertyFacet.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/test/org/apache/hivemind/service/impl/TestBuilderPropertyFacet.java Fri Nov 3 00:54:32 2006
@@ -17,10 +17,7 @@
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ServiceImplementationFactoryParameters;
import org.apache.hivemind.TranslatorManager;
-import org.apache.hivemind.impl.DefaultErrorHandler;
-import org.apache.hivemind.impl.natures.XmlRegistryNature;
import org.apache.hivemind.internal.Module;
-import org.apache.hivemind.internal.RegistryInfrastructure;
import org.apache.hivemind.schema.Translator;
import org.apache.hivemind.test.HiveMindTestCase;
import org.easymock.MockControl;
@@ -32,9 +29,6 @@
MockControl moduleControl = newControl(Module.class);
Module module = (Module) moduleControl.getMock();
- MockControl registryControl = newControl(RegistryInfrastructure.class);
- RegistryInfrastructure registry = (RegistryInfrastructure) registryControl.getMock();
-
MockControl translatorControl = newControl(Translator.class);
Translator translator = (Translator) translatorControl.getMock();
@@ -52,15 +46,9 @@
params.getInvokingModule();
paramsControl.setDefaultReturnValue(module);
-
- XmlRegistryNature xmlNature = new XmlRegistryNature(new DefaultErrorHandler());
- xmlNature.setTranslationManager(tm);
-
- module.getRegistry();
- moduleControl.setReturnValue(registry);
- registry.getNature(XmlRegistryNature.class);
- registryControl.setReturnValue(xmlNature);
+ module.getService(TranslatorManager.class);
+ moduleControl.setReturnValue(tm);
tm.getTranslator("foo");
tmControl.setReturnValue(translator);
@@ -81,9 +69,6 @@
MockControl moduleControl = newControl(Module.class);
Module module = (Module) moduleControl.getMock();
- MockControl registryControl = newControl(RegistryInfrastructure.class);
- RegistryInfrastructure registry = (RegistryInfrastructure) registryControl.getMock();
-
MockControl translatorControl = newControl(Translator.class);
Translator translator = (Translator) translatorControl.getMock();
@@ -102,14 +87,8 @@
params.getInvokingModule();
paramsControl.setDefaultReturnValue(module);
- XmlRegistryNature xmlNature = new XmlRegistryNature(new DefaultErrorHandler());
- xmlNature.setTranslationManager(tm);
-
- module.getRegistry();
- moduleControl.setReturnValue(registry);
-
- registry.getNature(XmlRegistryNature.class);
- registryControl.setReturnValue(xmlNature);
+ module.getService(TranslatorManager.class);
+ moduleControl.setReturnValue(tm);
tm.getTranslator("foo");
tmControl.setReturnValue(translator);