[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tm-dev] Programatic Creation of Filters/Pools/References

Which version of RSE are you using?

I tried to reproduce this although I had to modify the code since my version doesn't have systemRegistry.getSystemTypeById():
// Create with SSH to add the SFTP subsystem
IRSESystemType type = RSECorePlugin.getTheCoreRegistry().getSystemTypeById(IRSESystemType.SYSTEMTYPE_SSH_ONLY_ID);
host = systemRegistry.createHost(myProfile.getName(), type, hostName, hostName, "MyProfile Description");

When I restart Eclipse, I don't hit the problems you're hitting - I still have "MyFilter". If you make the following commit calls, does filter reference get persisted properly?
ISystemFilter newFilter = pool.createSystemFilter("MyFilter", new String[] {"/path/of/super/secret/resource/"});

// Add a reference from the SFTP subsystem to my new pool
ISystemFilterPoolReference ref = subSystem.getFilterPoolReferenceManager().addReferenceToSystemFilterPool(pool);

David McKnight
Phone: 905-413-3902 , T/L: 969-3902
Internet: dmcknigh@xxxxxxxxxx
Mail: D1/YFY/8200/TOR

Inactive hide details for Daniel Johnson ---16/08/2011 02:47:15 PM---Hi, I am trying to programmatically create Filter entries Daniel Johnson ---16/08/2011 02:47:15 PM---Hi, I am trying to programmatically create Filter entries on a server, and it seems to work fine, bu


Daniel Johnson <danijoh2@xxxxxxxxx>




16/08/2011 02:47 PM


[tm-dev] Programatic Creation of Filters/Pools/References

Sent by:



I am trying to programmatically create Filter entries on a server, and it seems to work fine, but as soon as I exit Eclipse and re-launch it seems that all of the Filters on that Server are corrupt, with a NPE being thrown in the error log.

Can anyone help explain how to do this and/or what I am doing wrong?

Here is my code:

String hostName = ... // Get host name
String username = ... // Get username

// Create MyProfile
ISystemRegistry systemRegistry = RSECorePlugin.getTheSystemRegistry();
ISystemProfile myProfile = systemRegistry.getSystemProfile("MyProfile");
if (myProfile == null) {
myProfile = systemRegistry.createSystemProfile("MyProfile", true);

// Create the host
IHost host = systemRegistry.getHost(myProfile, hostName);
if (host == null) {
// Create with SSH to add the SFTP subsystem
host = systemRegistry.createHost(myProfile.getName(), systemRegistry.getSystemTypeById(IRSESystemType.SYSTEMTYPE_SSH_ONLY_ID), hostName, hostName, "MyProfile Description");

for (ISubSystem subSystem : host.getSubSystems()) {
// Want the SFTP subsystem
if (subSystem.getName().equals("Sftp Files")) {
ISubSystemConfiguration config = subSystem.getSubSystemConfiguration();
// Get the Pool Manager for my profile type
ISystemFilterPoolManager poolManager = config.getFilterPoolManager(myProfile);
// Create the new filter Pool for my new filter (returns null if it already exists)
ISystemFilterPool pool = poolManager.createSystemFilterPool(server.getName()+
":ssh.files", true);
if (pool != null) {
// Create my new filter, this is a brand new Pool so don't worry checking if it already exists
pool.createSystemFilter("MyFilter", new String[] {"/path/of/super/secret/resource/"});
// Add a reference from the SFTP subsystem to my new pool

And here is the NPE after restarting Eclipse:

at org.eclipse.rse.internal.ui.view.SystemViewFilterPoolReferenceAdapter.getName(SystemViewFilterPoolReferenceAdapter.java:188)
at org.eclipse.rse.ui.view.AbstractSystemViewAdapter.testAttribute(AbstractSystemViewAdapter.java:1676)
at org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.preciselyMatches(ActionExpression.java:530)
at org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.isEnabledFor(ActionExpression.java:499)
at org.eclipse.ui.internal.ActionExpression$OrExpression.isEnabledFor(ActionExpression.java:582)
at org.eclipse.ui.internal.ActionExpression$SingleExpression.isEnabledFor(ActionExpression.java:743)
at org.eclipse.ui.internal.ActionExpression.isEnabledFor(ActionExpression.java:1053)
at org.eclipse.ui.internal.decorators.DecoratorDefinition.isEnabledFor(DecoratorDefinition.java:282)

Thanks in advance,
Daniel Johnson_______________________________________________
tm-dev mailing list

GIF image

GIF image