While testing migration of various projects to Ivy 6.0, I encountered a problem with a method that does not exist anymore.

   * Find the current process name. 
   * @return fully qualified process name 
   * @throws Exception 
    public static String getName() throws Exception {
        return SecurityManagerFactory.getSecurityManager().executeAsSystem(new Callable<String>() {
            public String call() {
                IProcess process = ProcessNavigationUtil.getProcess(MetaData.getProcessElement());

                if (process != null) 
                    return process.getPath();

                return null;

In the previous code, the method MetaData.getProcessElement() is not found. By looking in Ivy 5.1.7, it was implemented as:

  public static ZObject getProcessElement()
    return (ZObject)IvyThreadContext.getIvyThreadLocalValue("processElement");

Now the method has been removed, and a new method getProcessElementId() was added, but with a new signature:

  public static PID getProcessElementId()
    return (PID)IvyThreadContext.getIvyThreadLocalValue("processElement");

I didn't found this change in the migration documentation. Can I know the reason for removing the previous method and what are the alternative in order to get the current process name? Thanks.

asked 14.12.2015 at 15:03

A1234's gravatar image

accept rate: 33%

This is internal API which was never meant to be used by project implementors, thats why nothing is mentioned in the migration notes.

If you really need the name of the process resource you can use this API.

String pid = MetaData.getProcessElementId()
DiCore.getGlobalInjector().getInstance(IProcessManager.class).findProcess(pid ).getName();

of course this new API is internal as well. the API can change in the future!


answered 14.12.2015 at 15:40

Reguel%20Wermelinger's gravatar image

Reguel Werme... ♦♦
accept rate: 70%

edited 15.12.2015 at 12:44

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 14.12.2015 at 15:03

Seen: 797 times

Last updated: 15.12.2015 at 12:44