public Entry this[ManagedObjectName objectName] { get { return((Entry)InnerHashtable[objectName]); } }
public Entry this[ManagedObjectName objectName] { get { return (Entry) InnerHashtable[objectName]; } }
public void Add(ManagedObjectName objectName, Entry instance) { lock (this) { InnerHashtable.Add(objectName, instance); } }
private void InvokeBeforeRegister(MRegistrationListener listener, ManagedObjectName name) { if (listener != null) { listener.BeforeRegister(server, name); } }
public void Add(ManagedObjectName objectName, Entry instance) { lock(this) { InnerHashtable.Add(objectName, instance); } }
public void Remove(ManagedObjectName objectName) { lock (this) { InnerHashtable.Remove(objectName); } }
public void UnregisterManagedObject(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } String domainName = name.Domain; try { Domain domain = FindDomain(domainName); Entry entry = domain[name]; if (entry != null) { MRegistrationListener listener = entry.Instance as MRegistrationListener; InvokeBeforeDeregister(listener); domain.Remove(name); InvokeAfterDeregister(listener); } } catch (InvalidDomainException) { } }
public void BeforeRegister(MServer server, ManagedObjectName name) { this.server = server; this.name = name; RegisterServer(); }
public void TestInvoke() { ManagedObjectName name = new ManagedObjectName("domain.org:type=httpServer"); try { Object httpServer = server.Instantiate(httpServerType.Assembly.FullName, httpServerType.FullName); ManagedInstance inst = server.RegisterManagedObject(httpServer, name); bool state = (bool)server.GetAttribute(name, "Started"); AssertEquals(false, state); server.Invoke(name, "Start", null, null); state = (bool)server.GetAttribute(name, "Started"); AssertEquals(true, state); server.Invoke(name, "Stop", null, null); state = (bool)server.GetAttribute(name, "Started"); AssertEquals(false, state); } finally { server.UnregisterManagedObject(name); } }
public void Remove(ManagedObjectName objectName) { lock(this) { InnerHashtable.Remove(objectName); } }
public void BeforeRegister(MServer server, ManagedObjectName name) { this.server = server; this.name = name; RegisterServer(); }
public void TestCreation() { ManagedObjectName name = new ManagedObjectName("domain.org"); ManagedInstance instance1 = new ManagedInstance("typename", name); AssertEquals("typename", instance1.TypeName); AssertEquals(name, instance1.Name); }
/// <summary> /// TODO: Summary /// </summary> /// <param name="name"></param> public void UnregisterManagedObject(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } registry.UnregisterManagedObject(name); }
/// <summary> /// Returns the info (attributes and operations) about the specified object. /// </summary> /// <param name="name"></param> /// <returns></returns> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public ManagementInfo GetManagementInfo(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } return(registry.GetManagementInfo(name)); }
public ManagedInstance GetManagedInstance(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } return(new ManagedInstance(GetEntry(name).Instance.GetType().FullName, name)); }
/// <summary> /// Queries the registerd components. /// </summary> /// <returns></returns> public ManagedObjectName[] Query(ManagedObjectName query) { // TODO: several queries... if (query.LiteralProperties.Equals("*")) { return(FindAllFromDomain(query.Domain)); } return(null); }
/// <summary> /// Invokes an action in managed object /// </summary> /// <param name="name"></param> /// <param name="action"></param> /// <param name="args"></param> /// <param name="signature"></param> /// <returns></returns> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public Object Invoke(ManagedObjectName name, String action, Object[] args, Type[] signature) { if (name == null) { throw new ArgumentNullException("name"); } if (action == null) { throw new ArgumentNullException("action"); } return(registry.Invoke(name, action, args, signature)); }
/// <summary> /// Indexer for registered objects. /// </summary> public Object this[ManagedObjectName name] { get { if (name == null) { throw new ArgumentNullException("name"); } return GetEntry(name).Instance; } }
public void TestCreation() { ManagedObjectName name1 = new ManagedObjectName("domain.net"); AssertEquals("domain.net", name1.Domain); AssertEquals(String.Empty, name1.LiteralProperties); ManagedObjectName name2 = new ManagedObjectName("domain.org:name=SomeService,type=aware"); AssertEquals("domain.org", name2.Domain); AssertEquals("type=aware,name=SomeService", name2.LiteralProperties); }
/// <summary> /// Indexer for registered objects. /// </summary> public Object this[ManagedObjectName name] { get { if (name == null) { throw new ArgumentNullException("name"); } return(GetEntry(name).Instance); } }
/// <summary> /// Helper to locate Entries. /// </summary> /// <param name="name"></param> /// <returns></returns> private Entry GetEntry(ManagedObjectName name) { Domain domain = FindDomain(name.Domain); Entry entry = domain[name]; if (entry == null) { throw new ManagedObjectNotFoundException(name.ToString()); } return(entry); }
/// <summary> /// Gets an attribute value of the specified managed object. /// </summary> /// <param name="name"></param> /// <param name="attributeName"></param> /// <returns></returns> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public Object GetAttribute(ManagedObjectName name, String attributeName) { if (name == null) { throw new ArgumentNullException("name"); } if (attributeName == null) { throw new ArgumentNullException("attributeName"); } return(registry.GetAttributeValue(name, attributeName)); }
/// <summary> /// Sets an attribute value of the specified managed object. /// </summary> /// <param name="name"></param> /// <param name="attributeName"></param> /// <param name="attributeValue"></param> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public void SetAttribute(ManagedObjectName name, String attributeName, Object attributeValue) { if (name == null) { throw new ArgumentNullException("name"); } if (attributeName == null) { throw new ArgumentNullException("attributeName"); } registry.SetAttributeValue(name, attributeName, attributeValue); }
public ManagedObjectName[] ToArray() { lock(this) { int index = 0; ManagedObjectName[] names = new ManagedObjectName[ Count ]; foreach(ManagedObjectName name in InnerHashtable.Keys) { names[index++] = name; } return names; } }
public bool Contains(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } String domainName = name.Domain; Domain domain = FindDomain(domainName); return(domain.Contains(name)); }
/// <summary> /// TODO: Summary /// </summary> /// <param name="instance"></param> /// <param name="name"></param> /// <returns></returns> public ManagedInstance RegisterManagedObject(Object instance, ManagedObjectName name) { if (instance == null) { throw new ArgumentNullException("instance"); } if (name == null) { throw new ArgumentNullException("name"); } return(registry.RegisterManagedObject(instance, name)); }
public void TestEquality1() { ManagedObjectName name1 = new ManagedObjectName("domain.net"); ManagedObjectName name2 = new ManagedObjectName("domain.net"); Assert(name1.GetHashCode() == name2.GetHashCode()); Assert(name1.Equals(name2)); ManagedObjectName name3 = new ManagedObjectName("domain.org"); Assert(name1.GetHashCode() != name3.GetHashCode()); Assert(!name1.Equals(name3)); }
public ManagedObjectName[] ToArray() { lock (this) { int index = 0; ManagedObjectName[] names = new ManagedObjectName[Count]; foreach (ManagedObjectName name in InnerHashtable.Keys) { names[index++] = name; } return(names); } }
public void TestEquality2() { ManagedObjectName name1 = new ManagedObjectName("domain.net:name=SomeService,type=aware"); ManagedObjectName name2 = new ManagedObjectName("domain.net:name=SomeService,type=aware"); Assert(name1.GetHashCode() == name2.GetHashCode()); Assert(name1.Equals(name2)); ManagedObjectName name3 = new ManagedObjectName("domain.net:name=SomeService,type=unaware"); Assert(name1.GetHashCode() != name3.GetHashCode()); Assert(!name1.Equals(name3)); }
/// <summary> /// Creates a ManagedInstance instance. /// </summary> /// <param name="typeName">Full qualified name of the type</param> /// <param name="name"><see cref="ManagedObjectName"/> of instance.</param> public ManagedInstance(String typeName, ManagedObjectName name) { if (typeName == null) { throw new ArgumentNullException("typeName"); } if (name == null) { throw new ArgumentNullException("name"); } this.name = name; this.typeName = typeName; }
/// <summary> /// TODO: Summary /// </summary> /// <param name="typeName"></param> /// <param name="name"></param> /// <returns></returns> public ManagedInstance CreateManagedObject(String typeName, ManagedObjectName name) { if (typeName == null) { throw new ArgumentNullException("typeName"); } if (name == null) { throw new ArgumentNullException("name"); } Object instance = Instantiate(typeName); return RegisterManagedObject(instance, name); }
/// <summary> /// TODO: Summary /// </summary> /// <param name="typeName"></param> /// <param name="name"></param> /// <returns></returns> public ManagedInstance CreateManagedObject(String typeName, ManagedObjectName name) { if (typeName == null) { throw new ArgumentNullException("typeName"); } if (name == null) { throw new ArgumentNullException("name"); } Object instance = Instantiate(typeName); return(RegisterManagedObject(instance, name)); }
public void TestRegistration() { MDefaultRegistry registry = new MDefaultRegistry(new MDefaultServer()); DummyLifecycledService service = new DummyLifecycledService(); ManagedObjectName name = new ManagedObjectName("domain.org:name=Service"); registry.RegisterManagedObject( service, name ); registry.UnregisterManagedObject( name ); AssertEquals( 0, service.beforeRegisterCalled ); AssertEquals( 1, service.afterRegisterCalled ); AssertEquals( 2, service.beforeDeregisterCalled ); AssertEquals( 3, service.afterDeregisterCalled ); }
public void TestRegistration() { MDefaultRegistry registry = new MDefaultRegistry(new MDefaultServer()); DummyLifecycledService service = new DummyLifecycledService(); ManagedObjectName name = new ManagedObjectName("domain.org:name=Service"); registry.RegisterManagedObject(service, name); registry.UnregisterManagedObject(name); AssertEquals(0, service.beforeRegisterCalled); AssertEquals(1, service.afterRegisterCalled); AssertEquals(2, service.beforeDeregisterCalled); AssertEquals(3, service.afterDeregisterCalled); }
public void TestCreateManagedObject() { ManagedObjectName name = new ManagedObjectName("domain.org:type=httpServer"); try { ManagedInstance inst = server.CreateManagedObject( httpServerType.Assembly.FullName, httpServerType.FullName, name); AssertNotNull(inst); AssertEquals(httpServerType.FullName, inst.TypeName); AssertEquals(name, inst.Name); } finally { server.UnregisterManagedObject(name); } }
public void TestSerialization() { MemoryStream stream = new MemoryStream(); ManagedObjectName name1 = new ManagedObjectName("domain.net:name=SomeService,type=aware"); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, name1); stream.Position = 0; ManagedObjectName name2 = (ManagedObjectName)formatter.Deserialize(stream); Assert(name1.GetHashCode() == name2.GetHashCode()); Assert(name1.Equals(name2)); }
public void TestCreateManagedObject() { ManagedObjectName name = new ManagedObjectName("domain.org:type=httpServer"); try { ManagedInstance inst = server.CreateManagedObject( httpServerType.Assembly.FullName, httpServerType.FullName, name ); AssertNotNull( inst ); AssertEquals( httpServerType.FullName, inst.TypeName ); AssertEquals( name, inst.Name ); } finally { server.UnregisterManagedObject( name ); } }
public void TestGetManagementInfo() { ManagedObjectName name1 = new ManagedObjectName("domain.org:type=httpServer"); ManagedObjectName name2 = new ManagedObjectName("domain.net:type=smtpServer"); try { Object httpServer = server.Instantiate( httpServerType.Assembly.FullName, httpServerType.FullName ); server.RegisterManagedObject( httpServer, name1 ); ManagementInfo info = server.GetManagementInfo( name1 ); AssertNotNull( info ); AssertEquals( 3, info.Operations.Count ); AssertEquals( 1, info.Attributes.Count ); Object smtpServer = server.Instantiate( smtpServerType.Assembly.FullName, smtpServerType.FullName ); try { server.RegisterManagedObject( smtpServer, name1 ); Fail("Should not allow register with same name."); } catch(InstanceAlreadyRegistredException) { // OK } server.RegisterManagedObject( smtpServer, name2 ); info = server.GetManagementInfo( name2 ); AssertNotNull( info ); AssertEquals( 2, info.Operations.Count ); AssertEquals( 1, info.Attributes.Count ); } finally { server.UnregisterManagedObject( name1 ); server.UnregisterManagedObject( name2 ); } }
public void TestGetManagementInfo() { ManagedObjectName name1 = new ManagedObjectName("domain.org:type=httpServer"); ManagedObjectName name2 = new ManagedObjectName("domain.net:type=smtpServer"); try { Object httpServer = server.Instantiate(httpServerType.Assembly.FullName, httpServerType.FullName); server.RegisterManagedObject(httpServer, name1); ManagementInfo info = server.GetManagementInfo(name1); AssertNotNull(info); AssertEquals(3, info.Operations.Count); AssertEquals(1, info.Attributes.Count); Object smtpServer = server.Instantiate(smtpServerType.Assembly.FullName, smtpServerType.FullName); try { server.RegisterManagedObject(smtpServer, name1); Fail("Should not allow register with same name."); } catch (InstanceAlreadyRegistredException) { // OK } server.RegisterManagedObject(smtpServer, name2); info = server.GetManagementInfo(name2); AssertNotNull(info); AssertEquals(2, info.Operations.Count); AssertEquals(1, info.Attributes.Count); } finally { server.UnregisterManagedObject(name1); server.UnregisterManagedObject(name2); } }
public void TestTcpServerCreation() { System.Collections.Specialized.NameValueCollection props = new System.Collections.Specialized.NameValueCollection(); props.Add("port", "3131"); MConnectorServer serverConn = MConnectorServerFactory.CreateServer("provider:tcp:binary:test.rem", props, null); AssertNotNull(serverConn); ManagedObjectName name = new ManagedObjectName("connector.tcp:formatter=binary"); server.RegisterManagedObject(serverConn, name); AssertEquals(name, serverConn.ManagedObjectName); AppDomain child = null; try { child = AppDomain.CreateDomain( "Child", new System.Security.Policy.Evidence(AppDomain.CurrentDomain.Evidence), AppDomain.CurrentDomain.SetupInformation); RemoteClient client = (RemoteClient) child.CreateInstanceAndUnwrap(typeof(RemoteClient).Assembly.FullName, typeof(RemoteClient).FullName); AssertNotNull(client.TestTcpClientCreation()); } finally { server.UnregisterManagedObject(name); if (child != null) { AppDomain.Unload(child); } } }
public void TestUse() { MDefaultRegistry registry = new MDefaultRegistry(new MDefaultServer()); AssertEquals( 0, registry.Count ); DummyHttpServer instance = new DummyHttpServer(); ManagedObjectName name = new ManagedObjectName("domain.org"); ManagedInstance minstance = registry.RegisterManagedObject(instance, name); AssertNotNull( minstance ); AssertNotNull( minstance.TypeName ); AssertEquals( name, minstance.Name ); AssertEquals( 1, registry.Count ); AssertEquals( instance, registry[name] ); registry.UnregisterManagedObject( name ); AssertEquals( 0, registry.Count ); }
public void TestAttributes() { ManagedObjectName name = new ManagedObjectName("domain.net:type=smtpServer"); try { Object smtpServer = server.Instantiate( smtpServerType.Assembly.FullName, smtpServerType.FullName ); ManagedInstance inst = server.RegisterManagedObject( smtpServer, name ); int port = (int) server.GetAttribute(name, "Port"); AssertEquals( 1088, port ); server.SetAttribute( name, "Port", 25 ); port = (int) server.GetAttribute(name, "Port"); AssertEquals( 25, port ); } finally { server.UnregisterManagedObject( name ); } }
public void TestInfoObtation() { MDefaultServer server = new MDefaultServer(); ManagedObjectName name1 = new ManagedObjectName("domain.org:type=dummyService"); try { Type serviceType = typeof(DummyService); Object service = server.Instantiate( serviceType.Assembly.FullName, serviceType.FullName ); server.RegisterManagedObject( service, name1 ); ManagementInfo info = server.GetManagementInfo( name1 ); AssertNotNull( info ); AssertEquals( 1, info.Operations.Count ); AssertEquals( 1, info.Attributes.Count ); } finally { server.UnregisterManagedObject( name1 ); } }
/// <summary> /// TODO: Summary /// </summary> /// <param name="instance"></param> /// <param name="name"></param> /// <returns></returns> public ManagedInstance RegisterManagedObject(Object instance, ManagedObjectName name) { if (instance == null) { throw new ArgumentNullException("instance"); } if (name == null) { throw new ArgumentNullException("name"); } return registry.RegisterManagedObject(instance, name); }
/// <summary> /// TODO: Summary /// </summary> /// <param name="name"></param> public void UnregisterManagedObject(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } registry.UnregisterManagedObject(name); }
/// <summary> /// Invokes an action in managed object /// </summary> /// <param name="name"></param> /// <param name="action"></param> /// <param name="args"></param> /// <param name="signature"></param> /// <returns></returns> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public Object Invoke(ManagedObjectName name, String action, Object[] args, Type[] signature) { if (name == null) { throw new ArgumentNullException("name"); } if (action == null) { throw new ArgumentNullException("action"); } return registry.Invoke(name, action, args, signature); }
/// <summary> /// Queries the registerd components. /// </summary> /// <returns></returns> public ManagedObjectName[] Query(ManagedObjectName query) { return registry.Query(query); }
public void UnregisterManagedObject(ManagedObjectName name) { server.UnregisterManagedObject(name); }
/// <summary> /// Returns the info (attributes and operations) about the specified object. /// </summary> /// <param name="name"></param> /// <returns></returns> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public ManagementInfo GetManagementInfo(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } return registry.GetManagementInfo(name); }
public Object GetAttribute(ManagedObjectName name, String attributeName) { return server.GetAttribute(name, attributeName); }
public ManagedInstance CreateManagedObject(String assemblyName, String typeName, ManagedObjectName name) { return server.CreateManagedObject(assemblyName, typeName, name); }
public ManagementInfo GetManagementInfo(ManagedObjectName name) { return server.GetManagementInfo(name); }
public ManagedInstance GetManagedInstance(ManagedObjectName name) { return server.GetManagedInstance(name); }
public Object Invoke(ManagedObjectName name, String action, Object[] args, Type[] signature) { return server.Invoke(name, action, args, signature); }
public void SetAttribute(ManagedObjectName name, String attributeName, Object attributeValue) { server.SetAttribute(name, attributeName, attributeValue); }
public bool Contains(ManagedObjectName name) { if (name == null) { throw new ArgumentNullException("name"); } String domainName = name.Domain; Domain domain = FindDomain(domainName); return domain.Contains(name); }
public ManagedInstance RegisterManagedObject(Object instance, ManagedObjectName name) { return server.RegisterManagedObject(instance, name); }
public void TestInvoke() { ManagedObjectName name = new ManagedObjectName("domain.org:type=httpServer"); try { Object httpServer = server.Instantiate( httpServerType.Assembly.FullName, httpServerType.FullName ); ManagedInstance inst = server.RegisterManagedObject( httpServer, name ); bool state = (bool) server.GetAttribute(name, "Started"); AssertEquals( false, state ); server.Invoke( name, "Start", null, null ); state = (bool) server.GetAttribute(name, "Started"); AssertEquals( true, state ); server.Invoke( name, "Stop", null, null ); state = (bool) server.GetAttribute(name, "Started"); AssertEquals( false, state ); } finally { server.UnregisterManagedObject( name ); } }
/// <summary> /// Gets an attribute value of the specified managed object. /// </summary> /// <param name="name"></param> /// <param name="attributeName"></param> /// <returns></returns> /// <exception cref="InvalidDomainException">If domain name is not found.</exception> public Object GetAttribute(ManagedObjectName name, String attributeName) { if (name == null) { throw new ArgumentNullException("name"); } if (attributeName == null) { throw new ArgumentNullException("attributeName"); } return registry.GetAttributeValue(name, attributeName); }
public ManagedObjectName[] Query(ManagedObjectName query) { return server.Query(query); }