hivemind-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [Jakarta HiveMind Wiki] Updated: NotXMLProposal
Date Tue, 04 May 2004 14:26:17 GMT
   Date: 2004-05-04T07:26:17
   Editor: HarishKrishnaswamy <>
   Wiki: Jakarta HiveMind Wiki
   Page: NotXMLProposal

   no comment

Change Log:

@@ -189,7 +189,7 @@
 HowardLewisShip: ["JavaCC"] generates a token stream and each token knows it start and end
line number and column. I think it will be much easier to support this than with XML. I suspect
we'll be able to easily get that information out of the parser and into the plugin. Like Tapestry,
a plugin shouldn't be all that necessary ... the SDL stuff takes the teeth out of XML, making
it look quite pleasant.
-HarishKrishnaswamy: Ok, here's a little more elaborate example.
+HarishKrishnaswamy: Ok, here's the same example with little more details.
  * Service point definition
@@ -222,7 +222,7 @@
-        dependencies // Setter arguments
+        dependencies // Setter properties
@@ -238,7 +238,10 @@
             Interpreter interpreter = new Interpreter();
-            interpreter.set("$helper$", new BshBuilderHelper(registry));
+            helper = new BshBuilderHelper(registry);
+            helper.setCurrentModuleName(moduleUrl.toString());
+            interpreter.set("$helper$", helper);
             interpreter.eval("importObject($helper$)");  // This is a mixin command
@@ -247,8 +250,6 @@
             interpreter.set("$interpreter$", interpreter);
             interpreter.set("$callstack$", new CallStack(interpreter.getNameSpace()));
-            registry.setCurrentModuleName(moduleUrl.toString());
             interpreter.set("$url$", moduleUrl);
             interpreter.eval("evalModule($url$, $helper$, $interpreter$, $callstack$)");
@@ -272,13 +273,13 @@
     public void servicePoint(String serviceId, Class serviceInterface)
         Location location = new Location(_currentModuleName, _currentLineNumber);
-        // Register the service point with the location
+        // Register the service point along with the location
     public Object implementation(String serviceId, Class serviceImplementation, Object[]
         Location location = new Location(_currentModuleName, _currentLineNumber);
-        // Register the service implementation with the location
+        // Register the service implementation along with the location
         return service;
@@ -302,3 +303,7 @@
 Of late, I have really subscribed into KISS and [
Enabling Attitude] principles and these ideas are simply a repercussion of that.
 KnutWannheden: Harish, your example is IMO getting very close to a purely descriptive form
(like the SDL or XML approach). Of course someone could (ab)use the BSH design to write an
absurdly cryptic module descriptor. This is where I gather you say the Enabling Attitude principle
comes in to play. IMO the only thing with the XML descriptor which doesn't conform to this
principle is the XML syntax itself, and that's what SDL should solve.  But then again with
the plethora of XML processing / spewing tools I think XML also has some nice advantages.
Also I think one of the main purposes of using a descriptive syntax is to make the descriptor
itself readable. And, as previously noted, if users put arbitrary Java code into the descriptor
I think it could prove difficult for HiveDoc to produce something useful.
+HarishKrishnaswamy: Couple things I forgot to mention: Producing HiveDoc is just as simple
because the comments could be a part of the AST and we could annotate them for HiveDoc. And
secondly, with this approach I don't think we need a special tool like Spindle for the descriptors;
the eclipse scrapbook page is good enough, IMO.
+I certainly like the SDL far better than XML for reasons I have already mentioned, but my
point of using scripting language was to save us the trouble of creating another language
and make it more easily adoptable. If I were new to HiveMind, I wouldn't want to worry about
the schema and factory and friends. I would simply want to say here's my service point and
here's the implementation, you do your thing and get me the service. Or here's the configuration
point and here's all the contributions. Don't get me wrong, I still like all the concepts
in HiveMind, its just the usage ;) And just to make it clear, there are no flames here!

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message