You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hivemind.apache.org by Mi...@Sparkassen-Informatik.de on 2005/03/04 10:02:31 UTC
Re: Provide runtime symbol source [Virus checked]
We solved this problem by implementing a RuntimeSymbolProvider:
The registry has to be build like this:
ClassResolver resolver = new DefaultClassResolver();
RegistryBuilder builder = new RegistryBuilder();
XmlModuleDescriptorProvider xmdp = new
XmlModuleDescriptorProvider(resolver);
builder.addModuleDescriptorProvider(xmdp);
RuntimeSymbolProvider pmdp = new
RuntimeSymbolProvider(runtimeSymbols,
resolver);
builder.addModuleDescriptorProvider(pmdp);
_registry = builder.constructRegistry(Locale.getDefault());
where RuntimeSymbolProvider looks like:
package de.sparkasseninformatik.comserv.platform;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import org.apache.hivemind.ClassResolver;
import org.apache.hivemind.ErrorHandler;
import org.apache.hivemind.ModuleDescriptorProvider;
import org.apache.hivemind.impl.AttributeImpl;
import org.apache.hivemind.impl.ElementImpl;
import org.apache.hivemind.parse.ContributionDescriptor;
import org.apache.hivemind.parse.ModuleDescriptor;
/**
* @author IE279
*/
public class RuntimeSymbolProvider implements ModuleDescriptorProvider
{
private Properties _runtimeSymbols;
private ClassResolver _resolver;
/**
*
*/
public RuntimeSymbolProvider(Properties runtimeSymbols,
ClassResolver resolver)
{
_runtimeSymbols = runtimeSymbols;
_resolver = resolver;
}
/**
* @see
org.apache.hivemind.ModuleDescriptorProvider#getModuleDescriptors(org.apache.hivemind.ErrorHandler)
*/
public List getModuleDescriptors(ErrorHandler handler)
{
List result = new ArrayList();
if ((_runtimeSymbols != null) && (_runtimeSymbols.size() > 0))
{
ModuleDescriptor md = new ModuleDescriptor(_resolver, handler);
md.setModuleId("de.sparkasseninformatik.comserv.platform.runtime");
ContributionDescriptor cd = new ContributionDescriptor();
cd.setConfigurationId("hivemind.ApplicationDefaults");
for (Iterator iter = _runtimeSymbols.keySet().iterator();
iter.hasNext();)
{
String prop = (String) iter.next();
ElementImpl element = new ElementImpl();
element.setElementName("default");
AttributeImpl symbol = new AttributeImpl("symbol", prop);
AttributeImpl value = new AttributeImpl("value",
_runtimeSymbols.getProperty(prop));
element.addAttribute(symbol);
element.addAttribute(value);
cd.addElement(element);
}
md.addContribution(cd);
result.add(md);
}
return result;
}
}
Mit freundlichen Grüßen
Michael Frericks
Internet/Homebanking MS/OF
Sparkassen Informatik GmbH & Co.KG
Nevinghoff 25
48147 Münster
Telefon: 0251/288-3489
Notes: Michael Frericks/4221/MS/SI/DE@Sparkassen-Informatik
E-Mail: michael.frericks@sparkassen-informatik.de
---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org
Re: Provide runtime symbol source [Virus checked]
Posted by Achim Huegen <ah...@gmx-topmail.de>.
Thank you very much. That's exactly what I had in mind.
Die Postbank dankt ;-)
Achim
Michael.Frericks@Sparkassen-Informatik.de wrote:
> We solved this problem by implementing a RuntimeSymbolProvider:
>
> The registry has to be build like this:
>
> ClassResolver resolver = new DefaultClassResolver();
> RegistryBuilder builder = new RegistryBuilder();
>
> XmlModuleDescriptorProvider xmdp = new
> XmlModuleDescriptorProvider(resolver);
> builder.addModuleDescriptorProvider(xmdp);
>
> RuntimeSymbolProvider pmdp = new
> RuntimeSymbolProvider(runtimeSymbols,
> resolver);
> builder.addModuleDescriptorProvider(pmdp);
>
> _registry = builder.constructRegistry(Locale.getDefault());
>
>
> where RuntimeSymbolProvider looks like:
>
> package de.sparkasseninformatik.comserv.platform;
>
> import java.util.ArrayList;
> import java.util.Iterator;
> import java.util.List;
> import java.util.Properties;
> import org.apache.hivemind.ClassResolver;
> import org.apache.hivemind.ErrorHandler;
> import org.apache.hivemind.ModuleDescriptorProvider;
> import org.apache.hivemind.impl.AttributeImpl;
> import org.apache.hivemind.impl.ElementImpl;
> import org.apache.hivemind.parse.ContributionDescriptor;
> import org.apache.hivemind.parse.ModuleDescriptor;
>
>
> /**
> * @author IE279
> */
> public class RuntimeSymbolProvider implements ModuleDescriptorProvider
> {
> private Properties _runtimeSymbols;
> private ClassResolver _resolver;
>
> /**
> *
> */
> public RuntimeSymbolProvider(Properties runtimeSymbols,
> ClassResolver resolver)
> {
> _runtimeSymbols = runtimeSymbols;
> _resolver = resolver;
> }
>
> /**
> * @see
> org.apache.hivemind.ModuleDescriptorProvider#getModuleDescriptors(org.apache.hivemind.ErrorHandler)
> */
> public List getModuleDescriptors(ErrorHandler handler)
> {
> List result = new ArrayList();
>
> if ((_runtimeSymbols != null) && (_runtimeSymbols.size() > 0))
> {
> ModuleDescriptor md = new ModuleDescriptor(_resolver, handler);
>
> md.setModuleId("de.sparkasseninformatik.comserv.platform.runtime");
>
> ContributionDescriptor cd = new ContributionDescriptor();
>
> cd.setConfigurationId("hivemind.ApplicationDefaults");
>
> for (Iterator iter = _runtimeSymbols.keySet().iterator();
> iter.hasNext();)
> {
> String prop = (String) iter.next();
> ElementImpl element = new ElementImpl();
> element.setElementName("default");
>
> AttributeImpl symbol = new AttributeImpl("symbol", prop);
> AttributeImpl value = new AttributeImpl("value",
> _runtimeSymbols.getProperty(prop));
> element.addAttribute(symbol);
> element.addAttribute(value);
> cd.addElement(element);
> }
>
> md.addContribution(cd);
>
> result.add(md);
> }
>
> return result;
> }
> }
>
> Mit freundlichen Grüßen
>
> Michael Frericks
> Internet/Homebanking MS/OF
>
> Sparkassen Informatik GmbH & Co.KG
> Nevinghoff 25
> 48147 Münster
> Telefon: 0251/288-3489
> Notes: Michael Frericks/4221/MS/SI/DE@Sparkassen-Informatik
> E-Mail: michael.frericks@sparkassen-informatik.de
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: hivemind-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org