Le 28/10/2010 10:55, Leonardo Gomes a écrit :
It could be a starting point for this part:

    /maven plugin that precompiles the rule discovered in the module
    and simply place the/
    / compiled classes in a given directory./


Sure, but then I would like to have an API to get access to the PackageStore from KnowledgePackage. Currently there is no such API (or I didn't find how to access theses classes). A solution where I could provides my own PackageStore (thus intercepting the writeClass(String name, byte[] bytecode)) would be nice also :)

Currently, I've only the reflection trick to access theses classes :'(
--G


On Thu, Oct 28, 2010 at 10:12 AM, Guillaume Sauthier <[email protected] <mailto:[email protected]>> wrote:

    Thanks for the link Leonardo
    I did take a look at it, but it doesn't do what I want (extract
    the generated classes from the Package) :'(
    --G

    Le 28/10/2010 09:49, Leonardo Gomes a écrit :
    For the maven-plugin thing, have a look here:
    
http://drools-java-rules-engine.46999.n3.nabble.com/maven-drools-plugin-to-compile-DRL-s-at-build-time-td725751.html

    Leo.

    On Thu, Oct 28, 2010 at 9:39 AM, Guillaume Sauthier
    <[email protected] <mailto:[email protected]>>
    wrote:

        Hi Edison

        To be more concrete, I would like to create first a maven
        plugin that
        precompiles the rule discovered in the module and simply
        place the
        compiled classes in a given directory.

        Currently, I may use the reflection trick to access what I
        want (the
        PackageStore), but if it could be part of an API, that would
        be better :)

        Does it seems weird ? Is a patch welcome for this problem ?

        --G

        Le 26/10/2010 09:49, Guillaume Sauthier a écrit :
        > Thanks for your answer Edson.
        >
        > The reason I have is that runtime generated stuff usually
        don't fit well
        > in an OSGi model.
        >
        > When you take a bundle, it has a statically defined set of
        "imported
        > packages". that means that when the bundle has been
        compiled, a list of
        > packages to be wired in at deployment time has been
        computed. This list
        > of packages if inferred from what the .class files (in the
        bundle)
        > requires to be executed (think of them as external
        dependencies).
        >
        > Now if we generate some classes at runtime in an OSGi
        environment, we
        > can see that generated classes can have different (or
        additional)
        > requirements in terms of java packages. So usually, with
        OSGi, that ends
        > up by adding a special header called DynamicImport-Package
        into the
        > MANIFEST, with the side effects of breaking modularity :-(
        >
        > This is what I want to avoid by having access to the
        generated classes
        > at the compilation phase: I can then use this bytecode (IOW
        giving it to
        > Bnd [1]) to complete the Import-Package MANIFEST header
        with the right
        > set of imported java packages.
        >
        > As a second issue, less important for the moment and more
        runtime
        > oriented this time, I would like to know if/how we can add
        a new kind of
        > Resource.
        > Once we have generated the bytecode in the compilation
        phase, we can
        > assume that all the stuff is already here in the bundle.
        Why can't we
        > use it ?
        > I've seen the PKG Resource type, but it's some kind of
        serialization of
        > a whole Package, couldn't it be possible to have a new
        Package type (or
        > way to create a Package) that can use the ClassLoader to
        get access to
        > the already present bundle's resources instead of using the
        byte[] from
        > the serialized Package ?
        >
        > WDYT?
        >
        > Thanks
        > --G
        >
        > [1]. http://www.aqute.biz/Code/Bnd
        >
        > Le 25/10/2010 21:26, Edson Tirelli a écrit :
        >
        >>      Not exactly sure how helpful would it be to store the
        generated
        >> bytecodes in an osgi bundle. Anyway, there is no API right
        now to do
        >> that, but you can use reflection to achieve the same:
        >>
        >>           PackageCompilationData data =
        pkg.getPackageCompilationData();
        >>           Field field =
        PackageCompilationData.class.getDeclaredField( "store" );
        >>           field.setAccessible( true );
        >>           Map<String, byte[]>   store = (Map<String,
        byte[]>) field.get( data );
        >>
        >>      If you can justify the need for such an API, I guess
        we could be
        >> convinced to add one.
        >>
        >>      Edson
        >>
        >>
        >>
        >>
        >> 2010/10/25 Guillaume Sauthier<[email protected]
        <mailto:[email protected]>>:
        >>
        >>
        >>> Hi team
        >>>
        >>> I've tried the IRC (without much success I admit), maybe
        here someone will
        >>> have some thoughts to share :)
        >>>
        >>> I'm looking for a way to "intercept" the classes being
        generated by the
        >>> drools compiler.
        >>> I've seen that the classes bytecode is stored deep in
        >>> PackageStore/JavaDialectRuntimeData, so deep that I
        cannot easily access it
        >>> :)
        >>> The objective is to be able to give theses classes to Bnd
        (I want to store
        >>> all of that in an OSGi bundle) so that appropriate
        Import-Packages can be
        >>> computed. That will avoid to have DynamicImport-Packages
        all around my
        >>> bundles :)
        >>>
        >>> Currently, what I get from the drools compiler is a
        >>> Collection<KnowledgePackage>   but I have no API (or
        didn't find any) to
        >>> access (or know) the classes generated by the compiler.
        >>>
        >>> Any ideas ?
        >>> Thanks
        >>> --Guillaume
        >>>
        >>> _______________________________________________
        >>> rules-dev mailing list
        >>> [email protected] <mailto:[email protected]>
        >>> https://lists.jboss.org/mailman/listinfo/rules-dev
        >>>
        >>>
        >>>
        >>>
        >>
        >>
        >>
        > _______________________________________________
        > rules-dev mailing list
        > [email protected] <mailto:[email protected]>
        > https://lists.jboss.org/mailman/listinfo/rules-dev
        >
        >
        >
        _______________________________________________
        rules-dev mailing list
        [email protected] <mailto:[email protected]>
        https://lists.jboss.org/mailman/listinfo/rules-dev



    _______________________________________________
    rules-dev mailing list
    [email protected]  <mailto:[email protected]>
    https://lists.jboss.org/mailman/listinfo/rules-dev

    _______________________________________________
    rules-dev mailing list
    [email protected] <mailto:[email protected]>
    https://lists.jboss.org/mailman/listinfo/rules-dev



_______________________________________________
rules-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-dev
_______________________________________________
rules-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-dev

Reply via email to