You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ace.apache.org by "Toni Menzel (JIRA)" <ji...@apache.org> on 2009/10/16 21:11:31 UTC

[jira] Created: (ACE-56) Cross IDE debugging solution

Cross IDE debugging solution
----------------------------

                 Key: ACE-56
                 URL: https://issues.apache.org/jira/browse/ACE-56
             Project: Ace
          Issue Type: Improvement
            Reporter: Toni Menzel


Ace is a complex system where short buid/test cycles are important.

I have a small "instantlauncher" part that makes it possible to use dev-targets directly IDE. Because they are standalone Main Class, they can be started right away in any IDE.

Benefits:
- short dev cycle because it uses core/conf/<targetname>/ and its configuration information directly via inspection.
So, for example a complete dev-server-webui launcher looks like this
{code}
public class DevServerWebUI
{

    public static void main( String[] args )
        throws Exception
    {
        new DevelopmentLauncher().launch( new AceReactor( new TargetDescriptor()
        {
            public String targetName()
            {
                return "dev-server-webui";
            }

            public String[] settingsOverwrite()
            {
                return new String[]{
                    "org.apache.ace.configurator.CONFIG_DIR=core/conf/" + targetName()
                };
            }
        }
        )
        );
    }
}
{code}
Because it uses bundles from core/deploy/bundles directly, redeploy cycle is minimal.

Question: Is this of general use in ace or should i keep it for myself.
The solution builds on top of the FrameworkFactory API from OSGI Core R4.2. So it does not contain any framework relevant compile references.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ACE-56) Cross IDE debugging solution

Posted by "Toni Menzel (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ACE-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768591#action_12768591 ] 

Toni Menzel commented on ACE-56:
--------------------------------

How to use latest patch:
- apply from ace root, you will get a new subproject called devtools
- just src are included
- compile-dependencies: java5, osgi core api
- runtime dependencies: equinox 3.5+ or felix 2.0+

There is a unclear behaviour when using felix, which has to be debugged from a felix point of view (unrelated to ace). However both should work. I used equinox (for the time being).

> Cross IDE debugging solution
> ----------------------------
>
>                 Key: ACE-56
>                 URL: https://issues.apache.org/jira/browse/ACE-56
>             Project: Ace
>          Issue Type: Improvement
>            Reporter: Toni Menzel
>         Attachments: ACE-56-2.patch
>
>
> Ace is a complex system where short buid/test cycles are important.
> I have a small "instantlauncher" part that makes it possible to use dev-targets directly IDE. Because they are standalone Main Class, they can be started right away in any IDE.
> Benefits:
> - short dev cycle because it uses core/conf/<targetname>/ and its configuration information directly via inspection.
> So, for example a complete dev-server-webui launcher looks like this
> {code}
> public class DevServerWebUI
> {
>     public static void main( String[] args )
>         throws Exception
>     {
>         new DevelopmentLauncher().launch( new AceReactor( new TargetDescriptor()
>         {
>             public String targetName()
>             {
>                 return "dev-server-webui";
>             }
>             public String[] settingsOverwrite()
>             {
>                 return new String[]{
>                     "org.apache.ace.configurator.CONFIG_DIR=core/conf/" + targetName()
>                 };
>             }
>         }
>         )
>         );
>     }
> }
> {code}
> Because it uses bundles from core/deploy/bundles directly, redeploy cycle is minimal.
> Question: Is this of general use in ace or should i keep it for myself.
> The solution builds on top of the FrameworkFactory API from OSGI Core R4.2. So it does not contain any framework relevant compile references.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ACE-56) Cross IDE debugging solution

Posted by "Toni Menzel (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACE-56?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Toni Menzel updated ACE-56:
---------------------------

    Attachment: patch-ace-56.patch

as discussed: probably that stays in its own sub project.
But leave this for you - as it could evolve in another "friday's ant vs. maven" discussion ;)

> Cross IDE debugging solution
> ----------------------------
>
>                 Key: ACE-56
>                 URL: https://issues.apache.org/jira/browse/ACE-56
>             Project: Ace
>          Issue Type: Improvement
>            Reporter: Toni Menzel
>         Attachments: patch-ace-56.patch
>
>
> Ace is a complex system where short buid/test cycles are important.
> I have a small "instantlauncher" part that makes it possible to use dev-targets directly IDE. Because they are standalone Main Class, they can be started right away in any IDE.
> Benefits:
> - short dev cycle because it uses core/conf/<targetname>/ and its configuration information directly via inspection.
> So, for example a complete dev-server-webui launcher looks like this
> {code}
> public class DevServerWebUI
> {
>     public static void main( String[] args )
>         throws Exception
>     {
>         new DevelopmentLauncher().launch( new AceReactor( new TargetDescriptor()
>         {
>             public String targetName()
>             {
>                 return "dev-server-webui";
>             }
>             public String[] settingsOverwrite()
>             {
>                 return new String[]{
>                     "org.apache.ace.configurator.CONFIG_DIR=core/conf/" + targetName()
>                 };
>             }
>         }
>         )
>         );
>     }
> }
> {code}
> Because it uses bundles from core/deploy/bundles directly, redeploy cycle is minimal.
> Question: Is this of general use in ace or should i keep it for myself.
> The solution builds on top of the FrameworkFactory API from OSGI Core R4.2. So it does not contain any framework relevant compile references.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ACE-56) Cross IDE debugging solution

Posted by "Toni Menzel (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ACE-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768129#action_12768129 ] 

Toni Menzel commented on ACE-56:
--------------------------------

Currently, the implementation "parses" platform.setup in order to calculate the bundles needed.
But, because we have anyway the "big classpath" approach in ace, it could be much greater if we use this (special) circumstance:
We could make the assembly driven in a type-safe way by instead of flat text files.

Some ideas out the my head:
- Have a "AceBundle" marker interface with an enum/constant identifying a single bundle. 
If you have this for every ace bundle, you can make target-assemblies like so:
=AceTarget(
org.apache.ace.server.log.StoreBundle.class, 
org.apache.ace.core.configurator.SimpleConfiguratorBundle.class,
..
)

This is refactoring "safe", can be used natively for this task's debugging runner, can produce always current platform.setup files.
Right now it uses discovery in order to find matching bundles (via bundle-symbolicName matching, but could be any other).

We discuss about this.

> Cross IDE debugging solution
> ----------------------------
>
>                 Key: ACE-56
>                 URL: https://issues.apache.org/jira/browse/ACE-56
>             Project: Ace
>          Issue Type: Improvement
>            Reporter: Toni Menzel
>         Attachments: ACE-56-2.patch
>
>
> Ace is a complex system where short buid/test cycles are important.
> I have a small "instantlauncher" part that makes it possible to use dev-targets directly IDE. Because they are standalone Main Class, they can be started right away in any IDE.
> Benefits:
> - short dev cycle because it uses core/conf/<targetname>/ and its configuration information directly via inspection.
> So, for example a complete dev-server-webui launcher looks like this
> {code}
> public class DevServerWebUI
> {
>     public static void main( String[] args )
>         throws Exception
>     {
>         new DevelopmentLauncher().launch( new AceReactor( new TargetDescriptor()
>         {
>             public String targetName()
>             {
>                 return "dev-server-webui";
>             }
>             public String[] settingsOverwrite()
>             {
>                 return new String[]{
>                     "org.apache.ace.configurator.CONFIG_DIR=core/conf/" + targetName()
>                 };
>             }
>         }
>         )
>         );
>     }
> }
> {code}
> Because it uses bundles from core/deploy/bundles directly, redeploy cycle is minimal.
> Question: Is this of general use in ace or should i keep it for myself.
> The solution builds on top of the FrameworkFactory API from OSGI Core R4.2. So it does not contain any framework relevant compile references.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ACE-56) Cross IDE debugging solution

Posted by "Toni Menzel (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACE-56?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Toni Menzel updated ACE-56:
---------------------------

    Attachment: ACE-56-2.patch

Version 2 adds the ability to easily add libraries that are not mentioned in platform.setup but sometimes wanted (like felix.shell + shell.tui).


> Cross IDE debugging solution
> ----------------------------
>
>                 Key: ACE-56
>                 URL: https://issues.apache.org/jira/browse/ACE-56
>             Project: Ace
>          Issue Type: Improvement
>            Reporter: Toni Menzel
>         Attachments: ACE-56-2.patch
>
>
> Ace is a complex system where short buid/test cycles are important.
> I have a small "instantlauncher" part that makes it possible to use dev-targets directly IDE. Because they are standalone Main Class, they can be started right away in any IDE.
> Benefits:
> - short dev cycle because it uses core/conf/<targetname>/ and its configuration information directly via inspection.
> So, for example a complete dev-server-webui launcher looks like this
> {code}
> public class DevServerWebUI
> {
>     public static void main( String[] args )
>         throws Exception
>     {
>         new DevelopmentLauncher().launch( new AceReactor( new TargetDescriptor()
>         {
>             public String targetName()
>             {
>                 return "dev-server-webui";
>             }
>             public String[] settingsOverwrite()
>             {
>                 return new String[]{
>                     "org.apache.ace.configurator.CONFIG_DIR=core/conf/" + targetName()
>                 };
>             }
>         }
>         )
>         );
>     }
> }
> {code}
> Because it uses bundles from core/deploy/bundles directly, redeploy cycle is minimal.
> Question: Is this of general use in ace or should i keep it for myself.
> The solution builds on top of the FrameworkFactory API from OSGI Core R4.2. So it does not contain any framework relevant compile references.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ACE-56) Cross IDE debugging solution

Posted by "Toni Menzel (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACE-56?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Toni Menzel updated ACE-56:
---------------------------

    Attachment:     (was: patch-ace-56.patch)

> Cross IDE debugging solution
> ----------------------------
>
>                 Key: ACE-56
>                 URL: https://issues.apache.org/jira/browse/ACE-56
>             Project: Ace
>          Issue Type: Improvement
>            Reporter: Toni Menzel
>         Attachments: ACE-56-2.patch
>
>
> Ace is a complex system where short buid/test cycles are important.
> I have a small "instantlauncher" part that makes it possible to use dev-targets directly IDE. Because they are standalone Main Class, they can be started right away in any IDE.
> Benefits:
> - short dev cycle because it uses core/conf/<targetname>/ and its configuration information directly via inspection.
> So, for example a complete dev-server-webui launcher looks like this
> {code}
> public class DevServerWebUI
> {
>     public static void main( String[] args )
>         throws Exception
>     {
>         new DevelopmentLauncher().launch( new AceReactor( new TargetDescriptor()
>         {
>             public String targetName()
>             {
>                 return "dev-server-webui";
>             }
>             public String[] settingsOverwrite()
>             {
>                 return new String[]{
>                     "org.apache.ace.configurator.CONFIG_DIR=core/conf/" + targetName()
>                 };
>             }
>         }
>         )
>         );
>     }
> }
> {code}
> Because it uses bundles from core/deploy/bundles directly, redeploy cycle is minimal.
> Question: Is this of general use in ace or should i keep it for myself.
> The solution builds on top of the FrameworkFactory API from OSGI Core R4.2. So it does not contain any framework relevant compile references.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.