You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by mn...@apache.org on 2009/12/04 14:49:33 UTC
svn commit: r887194 - in
/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint:
ParserService.java container/BlueprintExtender.java
container/ParserServiceImpl.java
Author: mnuttall
Date: Fri Dec 4 13:49:32 2009
New Revision: 887194
URL: http://svn.apache.org/viewvc?rev=887194&view=rev
Log:
ARIES-69 Expose ParserService
Added:
incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java
incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java
Modified:
incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
Added: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java?rev=887194&view=auto
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java (added)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java Fri Dec 4 13:49:32 2009
@@ -0,0 +1,14 @@
+package org.apache.aries.blueprint;
+
+import java.net.URL;
+import java.util.List;
+
+import org.osgi.framework.Bundle;
+
+public interface ParserService {
+
+ ComponentDefinitionRegistry parse (List<URL> urls, Bundle clientBundle) throws Exception;
+
+ ComponentDefinitionRegistry parse (List<URL> urls, Bundle clientBundle, boolean validate) throws Exception;
+
+}
Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java?rev=887194&r1=887193&r2=887194&view=diff
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java (original)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java Fri Dec 4 13:49:32 2009
@@ -26,12 +26,14 @@
import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import org.apache.aries.blueprint.BlueprintConstants;
+import org.apache.aries.blueprint.ParserService;
import org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl;
import org.apache.aries.blueprint.utils.HeaderParser;
import org.apache.aries.blueprint.utils.HeaderParser.PathElement;
@@ -42,10 +44,10 @@
import org.osgi.framework.BundleEvent;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
import org.osgi.framework.SynchronousBundleListener;
import org.osgi.service.blueprint.container.BlueprintContainer;
import org.osgi.service.blueprint.container.BlueprintEvent;
-import org.osgi.service.framework.CompositeBundle;
import org.osgi.util.tracker.BundleTracker;
import org.osgi.util.tracker.BundleTrackerCustomizer;
import org.slf4j.Logger;
@@ -67,6 +69,9 @@
private BlueprintEventDispatcher eventDispatcher;
private NamespaceHandlerRegistry handlers;
private BundleTracker bt;
+
+ // MN adding new bits
+ private ServiceRegistration parserServiceReg;
public void start(BundleContext context) {
LOGGER.debug("Starting blueprint extender...");
@@ -108,14 +113,24 @@
checkBundle(b);
}
}
-
+
+ // Create and publish a ParserService
+ parserServiceReg = context.registerService(ParserService.class.getName(),
+ new ParserServiceImpl (handlers),
+ new Hashtable<Object, Object>());
+
+ LOGGER.debug("Blueprint extender started");
}
-
+
+
public void stop(BundleContext context) {
LOGGER.debug("Stopping blueprint extender...");
if (bt != null) {
bt.close();
}
+
+ parserServiceReg.unregister();
+
// Orderly shutdown of containers
while (!containers.isEmpty()) {
@@ -373,7 +388,7 @@
}
public Object addingBundle(Bundle b, BundleEvent event) {
-
+
super.addingBundle(b, event);
if (event == null) {
Added: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java?rev=887194&view=auto
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java (added)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java Fri Dec 4 13:49:32 2009
@@ -0,0 +1,37 @@
+package org.apache.aries.blueprint.container;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.aries.blueprint.ComponentDefinitionRegistry;
+import org.apache.aries.blueprint.ParserService;
+import org.apache.aries.blueprint.container.NamespaceHandlerRegistry.NamespaceHandlerSet;
+import org.apache.aries.blueprint.namespace.ComponentDefinitionRegistryImpl;
+import org.osgi.framework.Bundle;
+
+public class ParserServiceImpl implements ParserService {
+
+ NamespaceHandlerRegistry _namespaceHandlerRegistry;
+
+ public ParserServiceImpl (NamespaceHandlerRegistry nhr) {
+ _namespaceHandlerRegistry = nhr;
+ }
+ public ComponentDefinitionRegistry parse(List<URL> urls, Bundle clientBundle) throws Exception {
+ return parse(urls, clientBundle, false);
+ }
+
+ public ComponentDefinitionRegistry parse(List<URL> urls, Bundle clientBundle, boolean validate) throws Exception {
+ Parser parser = new Parser();
+ parser.parse(urls);
+ Set<URI> nsuris = parser.getNamespaces();
+ NamespaceHandlerSet nshandlers = _namespaceHandlerRegistry.getNamespaceHandlers(nsuris, clientBundle);
+ if (validate) {
+ parser.validate( nshandlers.getSchema());
+ }
+ ComponentDefinitionRegistry cdr = new ComponentDefinitionRegistryImpl();
+ parser.populate(nshandlers, cdr);
+ return cdr;
+ }
+}
Re: svn commit: r887194 - in /incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint:
ParserService.java container/BlueprintExtender.java container/ParserServiceImpl.java
Posted by mark <mp...@gmail.com>.
thank you! done.
2009/12/4 Lin Sun <li...@gmail.com>:
> Hi Mark,
>
> If you haven't added it, don't forget ASL license header for adding
> new files...
>
> Thx
>
> Lin
>
Re: svn commit: r887194 - in /incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint:
ParserService.java container/BlueprintExtender.java container/ParserServiceImpl.java
Posted by Lin Sun <li...@gmail.com>.
Hi Mark,
If you haven't added it, don't forget ASL license header for adding
new files...
Thx
Lin
On Fri, Dec 4, 2009 at 8:49 AM, <mn...@apache.org> wrote:
> Author: mnuttall
> Date: Fri Dec 4 13:49:32 2009
> New Revision: 887194
>
> URL: http://svn.apache.org/viewvc?rev=887194&view=rev
> Log:
> ARIES-69 Expose ParserService
>
> Added:
> incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java
> incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java
> Modified:
> incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
>
> Added: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java
> URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java?rev=887194&view=auto
> ==============================================================================
> --- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java (added)
> +++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ParserService.java Fri Dec 4 13:49:32 2009
> @@ -0,0 +1,14 @@
> +package org.apache.aries.blueprint;
> +
> +import java.net.URL;
> +import java.util.List;
> +
> +import org.osgi.framework.Bundle;
> +
> +public interface ParserService {
> +
> + ComponentDefinitionRegistry parse (List<URL> urls, Bundle clientBundle) throws Exception;
> +
> + ComponentDefinitionRegistry parse (List<URL> urls, Bundle clientBundle, boolean validate) throws Exception;
> +
> +}
>
> Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
> URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java?rev=887194&r1=887193&r2=887194&view=diff
> ==============================================================================
> --- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java (original)
> +++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java Fri Dec 4 13:49:32 2009
> @@ -26,12 +26,14 @@
> import java.util.Comparator;
> import java.util.Enumeration;
> import java.util.HashMap;
> +import java.util.Hashtable;
> import java.util.List;
> import java.util.Map;
> import java.util.concurrent.Executors;
> import java.util.concurrent.ScheduledExecutorService;
>
> import org.apache.aries.blueprint.BlueprintConstants;
> +import org.apache.aries.blueprint.ParserService;
> import org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl;
> import org.apache.aries.blueprint.utils.HeaderParser;
> import org.apache.aries.blueprint.utils.HeaderParser.PathElement;
> @@ -42,10 +44,10 @@
> import org.osgi.framework.BundleEvent;
> import org.osgi.framework.Constants;
> import org.osgi.framework.ServiceReference;
> +import org.osgi.framework.ServiceRegistration;
> import org.osgi.framework.SynchronousBundleListener;
> import org.osgi.service.blueprint.container.BlueprintContainer;
> import org.osgi.service.blueprint.container.BlueprintEvent;
> -import org.osgi.service.framework.CompositeBundle;
> import org.osgi.util.tracker.BundleTracker;
> import org.osgi.util.tracker.BundleTrackerCustomizer;
> import org.slf4j.Logger;
> @@ -67,6 +69,9 @@
> private BlueprintEventDispatcher eventDispatcher;
> private NamespaceHandlerRegistry handlers;
> private BundleTracker bt;
> +
> + // MN adding new bits
> + private ServiceRegistration parserServiceReg;
>
> public void start(BundleContext context) {
> LOGGER.debug("Starting blueprint extender...");
> @@ -108,14 +113,24 @@
> checkBundle(b);
> }
> }
> -
> +
> + // Create and publish a ParserService
> + parserServiceReg = context.registerService(ParserService.class.getName(),
> + new ParserServiceImpl (handlers),
> + new Hashtable<Object, Object>());
> +
> + LOGGER.debug("Blueprint extender started");
> }
> -
> +
> +
> public void stop(BundleContext context) {
> LOGGER.debug("Stopping blueprint extender...");
> if (bt != null) {
> bt.close();
> }
> +
> + parserServiceReg.unregister();
> +
>
> // Orderly shutdown of containers
> while (!containers.isEmpty()) {
> @@ -373,7 +388,7 @@
> }
>
> public Object addingBundle(Bundle b, BundleEvent event) {
> -
> +
> super.addingBundle(b, event);
>
> if (event == null) {
>
> Added: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java
> URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java?rev=887194&view=auto
> ==============================================================================
> --- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java (added)
> +++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/ParserServiceImpl.java Fri Dec 4 13:49:32 2009
> @@ -0,0 +1,37 @@
> +package org.apache.aries.blueprint.container;
> +
> +import java.net.URI;
> +import java.net.URL;
> +import java.util.List;
> +import java.util.Set;
> +
> +import org.apache.aries.blueprint.ComponentDefinitionRegistry;
> +import org.apache.aries.blueprint.ParserService;
> +import org.apache.aries.blueprint.container.NamespaceHandlerRegistry.NamespaceHandlerSet;
> +import org.apache.aries.blueprint.namespace.ComponentDefinitionRegistryImpl;
> +import org.osgi.framework.Bundle;
> +
> +public class ParserServiceImpl implements ParserService {
> +
> + NamespaceHandlerRegistry _namespaceHandlerRegistry;
> +
> + public ParserServiceImpl (NamespaceHandlerRegistry nhr) {
> + _namespaceHandlerRegistry = nhr;
> + }
> + public ComponentDefinitionRegistry parse(List<URL> urls, Bundle clientBundle) throws Exception {
> + return parse(urls, clientBundle, false);
> + }
> +
> + public ComponentDefinitionRegistry parse(List<URL> urls, Bundle clientBundle, boolean validate) throws Exception {
> + Parser parser = new Parser();
> + parser.parse(urls);
> + Set<URI> nsuris = parser.getNamespaces();
> + NamespaceHandlerSet nshandlers = _namespaceHandlerRegistry.getNamespaceHandlers(nsuris, clientBundle);
> + if (validate) {
> + parser.validate( nshandlers.getSchema());
> + }
> + ComponentDefinitionRegistry cdr = new ComponentDefinitionRegistryImpl();
> + parser.populate(nshandlers, cdr);
> + return cdr;
> + }
> +}
>
>
>