ace-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Wilfried.Si...@bosch-si.com>
Subject AW: ACE client
Date Tue, 25 Jun 2013 15:30:57 GMT
Hi Marcel

This was a good recommendation. I was able to implement a set of gogo commands to work on
the ACE repo.

One short question:
Are the left- and rigthCardinality mandatory or optional attributes?
I added some associations without any cardinality and they are all displayed correctly within
the UI.

Currently I don't really understand the principle of these attributes.
Having 1:1 cardinality is clear. But is this evaluated somewhere in the code?
Mostly I see the value 2147483647. This is the MAX_INT. But I think that this value is platform
dependent and seems not to be a good choice. Or do I misunderstand this issue?

Some information would be very appreciated.

Regards
Wilfried


-----Urspr√ľngliche Nachricht-----
Von: Marcel Offermans [mailto:marcel.offermans@luminis.nl] 
Gesendet: Donnerstag, 20. Juni 2013 14:05
An: users@ace.apache.org
Betreff: Re: ACE client

On Jun 20, 2013, at 11:42 AM, <Wilfried.Sibla@bosch-si.com> wrote:

> But nevertheless, I will write a small bundle including the bndrun file and use the bundle
start method to test something...

That works. If you want a bit more flexibility, you can write a shell command, by making an
Activator that does something like this:

public class Activator extends DependencyActivatorBase {
    @Override
    public void init(BundleContext context, DependencyManager manager) throws Exception {
      Properties props = new Properties();
      props.put(CommandProcessor.COMMAND_SCOPE, "myscope");
      props.put(CommandProcessor.COMMAND_FUNCTION, new String[] { "test", "two" });
        manager.add(createComponent()
            .setInterface(Object.class.getName(), props)
            .setImplementation(Commands.class)
        );
    }

    @Override
    public void destroy(BundleContext context, DependencyManager manager) throws Exception
{
    }
}

and a Commands class with commands that do something like this:

public class Commands {
    public void test() {
    	System.out.println("test command executing");
    }
    
    public void two() throws Exception {
    	throw new RuntimeException("I throw an exception.");
    }
}

Of course your commands should do something useful, and you might want to inject certain service
dependencies into that class, but this is the idea. From the shell you can then simply type:
"test" (or "myscope:test" if there exists more than one "test" command in different scopes).

Greetings, Marcel


Mime
View raw message