That wouldn&#39;t cover things like &quot;Just in time&quot; code generation in things like MVEL though. <br><br><div class="gmail_quote">On Thu, Oct 28, 2010 at 7:55 PM, Leonardo Gomes <span dir="ltr">&lt;<a href="mailto:leonardo.f.gomes@gmail.com">leonardo.f.gomes@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">It could be a starting point for this part:<div class="im"><br><br><blockquote style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex" class="gmail_quote">
<i>maven plugin that precompiles the rule discovered in the module and simply place the</i><br>
<i>
compiled classes in a given directory.</i><br></blockquote><br></div><div><div></div><div class="h5"><div class="gmail_quote">On Thu, Oct 28, 2010 at 10:12 AM, Guillaume Sauthier <span dir="ltr">&lt;<a href="mailto:guillaume.sauthier@ow2.org" target="_blank">guillaume.sauthier@ow2.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">


  

<div bgcolor="#ffffff" text="#000000">
Thanks for the link Leonardo<br>
I did take a look at it, but it doesn&#39;t do what I want (extract the
generated classes from the Package) :&#39;(<br>
--G<br>
<br>
Le 28/10/2010 09:49, Leonardo Gomes a écrit :
<div><div></div><div><blockquote type="cite">For the maven-plugin thing, have a look here: <a href="http://drools-java-rules-engine.46999.n3.nabble.com/maven-drools-plugin-to-compile-DRL-s-at-build-time-td725751.html" target="_blank">http://drools-java-rules-engine.46999.n3.nabble.com/maven-drools-plugin-to-compile-DRL-s-at-build-time-td725751.html</a><br>


  <br>
Leo.<br>
  <br>
  <div class="gmail_quote">On Thu, Oct 28, 2010 at 9:39 AM, Guillaume
Sauthier <span dir="ltr">&lt;<a href="mailto:guillaume.sauthier@ow2.org" target="_blank">guillaume.sauthier@ow2.org</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">Hi
Edison<br>
    <br>
To be more concrete, I would like to create first a maven plugin that<br>
precompiles the rule discovered in the module and simply place the<br>
compiled classes in a given directory.<br>
    <br>
Currently, I may use the reflection trick to access what I want (the<br>
PackageStore), but if it could be part of an API, that would be better
:)<br>
    <br>
Does it seems weird ? Is a patch welcome for this problem ?<br>
    <br>
--G<br>
    <br>
Le 26/10/2010 09:49, Guillaume Sauthier a écrit :<br>
    <div>
    <div>&gt; Thanks for your answer Edson.<br>
&gt;<br>
&gt; The reason I have is that runtime generated stuff usually don&#39;t
fit well<br>
&gt; in an OSGi model.<br>
&gt;<br>
&gt; When you take a bundle, it has a statically defined set of
&quot;imported<br>
&gt; packages&quot;. that means that when the bundle has been compiled, a
list of<br>
&gt; packages to be wired in at deployment time has been computed. This
list<br>
&gt; of packages if inferred from what the .class files (in the bundle)<br>
&gt; requires to be executed (think of them as external dependencies).<br>
&gt;<br>
&gt; Now if we generate some classes at runtime in an OSGi environment,
we<br>
&gt; can see that generated classes can have different (or additional)<br>
&gt; requirements in terms of java packages. So usually, with OSGi,
that ends<br>
&gt; up by adding a special header called DynamicImport-Package into the<br>
&gt; MANIFEST, with the side effects of breaking modularity :-(<br>
&gt;<br>
&gt; This is what I want to avoid by having access to the generated
classes<br>
&gt; at the compilation phase: I can then use this bytecode (IOW giving
it to<br>
&gt; Bnd [1]) to complete the Import-Package MANIFEST header with the
right<br>
&gt; set of imported java packages.<br>
&gt;<br>
&gt; As a second issue, less important for the moment and more runtime<br>
&gt; oriented this time, I would like to know if/how we can add a new
kind of<br>
&gt; Resource.<br>
&gt; Once we have generated the bytecode in the compilation phase, we
can<br>
&gt; assume that all the stuff is already here in the bundle. Why can&#39;t
we<br>
&gt; use it ?<br>
&gt; I&#39;ve seen the PKG Resource type, but it&#39;s some kind of
serialization of<br>
&gt; a whole Package, couldn&#39;t it be possible to have a new Package
type (or<br>
&gt; way to create a Package) that can use the ClassLoader to get
access to<br>
&gt; the already present bundle&#39;s resources instead of using the byte[]
from<br>
&gt; the serialized Package ?<br>
&gt;<br>
&gt; WDYT?<br>
&gt;<br>
&gt; Thanks<br>
&gt; --G<br>
&gt;<br>
&gt; [1]. <a href="http://www.aqute.biz/Code/Bnd" target="_blank">http://www.aqute.biz/Code/Bnd</a><br>
&gt;<br>
&gt; Le 25/10/2010 21:26, Edson Tirelli a écrit :<br>
&gt;<br>
&gt;&gt;      Not exactly sure how helpful would it be to store the
generated<br>
&gt;&gt; bytecodes in an osgi bundle. Anyway, there is no API right now
to do<br>
&gt;&gt; that, but you can use reflection to achieve the same:<br>
&gt;&gt;<br>
&gt;&gt;           PackageCompilationData data =
pkg.getPackageCompilationData();<br>
&gt;&gt;           Field field =
PackageCompilationData.class.getDeclaredField( &quot;store&quot; );<br>
&gt;&gt;           field.setAccessible( true );<br>
&gt;&gt;           Map&lt;String, byte[]&gt;   store = (Map&lt;String,
byte[]&gt;) field.get( data );<br>
&gt;&gt;<br>
&gt;&gt;      If you can justify the need for such an API, I guess we
could be<br>
&gt;&gt; convinced to add one.<br>
&gt;&gt;<br>
&gt;&gt;      Edson<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2010/10/25 Guillaume Sauthier&lt;<a href="mailto:guillaume.sauthier@ow2.org" target="_blank">guillaume.sauthier@ow2.org</a>&gt;:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; Hi team<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;ve tried the IRC (without much success I admit), maybe
here someone will<br>
&gt;&gt;&gt; have some thoughts to share :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m looking for a way to &quot;intercept&quot; the classes being
generated by the<br>
&gt;&gt;&gt; drools compiler.<br>
&gt;&gt;&gt; I&#39;ve seen that the classes bytecode is stored deep in<br>
&gt;&gt;&gt; PackageStore/JavaDialectRuntimeData, so deep that I cannot
easily access it<br>
&gt;&gt;&gt; :)<br>
&gt;&gt;&gt; The objective is to be able to give theses classes to Bnd
(I want to store<br>
&gt;&gt;&gt; all of that in an OSGi bundle) so that appropriate
Import-Packages can be<br>
&gt;&gt;&gt; computed. That will avoid to have DynamicImport-Packages
all around my<br>
&gt;&gt;&gt; bundles :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Currently, what I get from the drools compiler is a<br>
&gt;&gt;&gt; Collection&lt;KnowledgePackage&gt;   but I have no API (or
didn&#39;t find any) to<br>
&gt;&gt;&gt; access (or know) the classes generated by the compiler.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any ideas ?<br>
&gt;&gt;&gt; Thanks<br>
&gt;&gt;&gt; --Guillaume<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; rules-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; _______________________________________________<br>
&gt; rules-dev mailing list<br>
&gt; <a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
rules-dev mailing list<br>
    <a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
    <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
    </div>
    </div>
  </blockquote>
  </div>
  <br>
  <pre><fieldset></fieldset>
_______________________________________________
rules-dev mailing list
<a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a>
  </pre>
</blockquote>
</div></div></div>

<br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Michael D Neale<br>home: <a href="http://www.michaelneale.net">www.michaelneale.net</a><br>blog: <a href="http://michaelneale.blogspot.com">michaelneale.blogspot.com</a><br>