find reference of service using code

Hi,
Is there a way to get the references of a given service using a program/code instead of right clicking on the service and then cliking on ‘Find References’. I checked Integration server java API but did not find any classes which can be used to find the references.

regards,

Napster,

I don’t know if there is an API, but you can easily do this through a unix/windows script that can scan through the xml files on the file system and inspecting them for the service name within.

  • Hara

wm.server.ns.dependency:getReferences

This is not a public service and not intended for our use so wM won’t help if you encounter trouble.

IDataCursor pipelineCursor = pipeline.getCursor();
		String	serviceNSname = IDataUtil.getString( pipelineCursor, "serviceNSname" );
		pipelineCursor.destroy();
		
		NSNode nsNodeObj = Namespace.current().getNode(serviceNSname);	
		
		DependencyManager dm = NSDependencyManager.current();
		IData dependentObj = dm.getDependent(nsNodeObj, null);
		
		IDataUtil.put( pipelineCursor, "dependent",dependentObj);
		pipelineCursor.destroy();

Input is the NSName of the service. As Rob mentioned these classes are not public, so SAG can change them with out any notice either in a new version or as part of a fix.

Cheers,
Akshith

1 Like

:slight_smile:

Akshith,Reamon thanks it worked!!!

The code posted by Akshith gives the Dependent services, I just changed a single line in code to get the Referenced services

Changed
IData dependentObj = dm.getDependent(nsNodeObj, null);

to
IData dependentObj = dm.getReferenced(nsNodeObj, null);

Any idea where can I get details about this non public API’s?

regards,

If you’re looking for documentation or usage notes, they don’t exist. These things are not intended for our use.

For discovering services you can browse the WmRoot package. Either in IS Administrator or at the disk level.

For discovering classes you can review JAR files in a search and discover mode. :slight_smile:

For some reason i misunderstood that you needed to find dependents but yes the getReferenced method should return what you need.

I would suggest start using the Designer as it will show you all the classes/methods that are available from IS. Refer the server API for the imports.

Cheers,
Akshith

Reamon,Akshith thanks.
I think using a java decompiler will also be helpful to check the code.

Be sure not to violate any license agreements.

That is the reason why i did not suggest using a Decompiler :slight_smile:

I think the best approach would be to use the Designer\Eclipse for exploring these hidden API’s.

Cheers,
Akshith

Yup! I knew you were avoiding that. My comment was for Napster as we don’t want to be promoting anything that violates wM licensing!

Hi,
To find dependants using above code ,what are the classes to be imported in the shared tab ?

com.wm.lang.ns.DependencyManager;
com.wm.lang.ns.NSNode;
com.wm.app.b2b.server.ns.NSDependencyManager;
com.wm.app.b2b.server.ns.Namespace;

You can use Designer to figure out the imports.

Cheers,
Akshith

Hi All,

Please anyone tell me what are classes to be imported for this code. I got following errors while compiling. I am trying this in IS 6.5.

Thank you for your help

Regards,
Mohan