Пример #1
0
            public override void run(string[] args)
            {
                using (var communicator = initialize(ref args))
                {
                    //
                    // Create OA and servants
                    //
                    communicator.Properties.setProperty("MyOA.AdapterId", "myOA");

                    Ice.ObjectAdapter oa = communicator.createObjectAdapterWithEndpoints("MyOA2", "tcp -h localhost");

                    var interceptor = new InterceptorI <MyObject, MyObjectTraits>(new MyObjectI());

                    var prx = MyObjectPrx.UncheckedCast(oa.Add((incoming, current) => interceptor.Dispatch(incoming, current)));

                    var output = getWriter();

                    output.WriteLine("Collocation optimization on");
                    runTest(prx, interceptor);
                    output.WriteLine("Now with AMD");
                    interceptor.clear();
                    runAmdTest(prx, interceptor);

                    oa.Activate(); // Only necessary for non-collocation optimized tests

                    output.WriteLine("Collocation optimization off");
                    interceptor.clear();
                    prx = prx.Clone(collocationOptimized: false);
                    runTest(prx, interceptor);

                    output.WriteLine("Now with AMD");
                    interceptor.clear();
                    runAmdTest(prx, interceptor);
                }
            }
Пример #2
0
        public override int run(string[] args)
        {
            //
            // Create OA and servants
            //

            communicator().getProperties().setProperty("MyOA.AdapterId", "myOA");

            Ice.ObjectAdapter oa = communicator().createObjectAdapterWithEndpoints("MyOA2", "tcp -h localhost");

            Ice.Object      servant        = new MyObjectI();
            InterceptorI    interceptor    = new InterceptorI(servant);
            AMDInterceptorI amdInterceptor = new AMDInterceptorI(servant);

            Test.MyObjectPrx prx       = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(interceptor));
            Test.MyObjectPrx prxForAMD = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(amdInterceptor));

            Console.WriteLine("Collocation optimization on");
            int rs = run(prx, interceptor);

            if (rs != 0)
            {
                return(rs);
            }

            Console.WriteLine("Now with AMD");
            rs = runAmd(prxForAMD, amdInterceptor);
            if (rs != 0)
            {
                return(rs);
            }

            oa.activate(); // Only necessary for non-collocation optimized tests

            Console.WriteLine("Collocation optimization off");
            interceptor.clear();
            prx = Test.MyObjectPrxHelper.uncheckedCast(prx.ice_collocationOptimized(false));
            rs  = run(prx, interceptor);
            if (rs != 0)
            {
                return(rs);
            }

            Console.WriteLine("Now with AMD");
            amdInterceptor.clear();
            prxForAMD = Test.MyObjectPrxHelper.uncheckedCast(prxForAMD.ice_collocationOptimized(false));
            rs        = runAmd(prxForAMD, amdInterceptor);

            return(rs);
        }
Пример #3
0
        public override int run(string[] args)
        {
            //
            // Create OA and servants
            //

            communicator().getProperties().setProperty("MyOA.AdapterId", "myOA");

            Ice.ObjectAdapter oa = communicator().createObjectAdapterWithEndpoints("MyOA2", "tcp -h localhost");

            Ice.Object servant = new MyObjectI();
            InterceptorI interceptor = new InterceptorI(servant);
            AMDInterceptorI amdInterceptor = new AMDInterceptorI(servant);

            Test.MyObjectPrx prx = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(interceptor));
            Test.MyObjectPrx prxForAMD = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(amdInterceptor));

            Console.WriteLine("Collocation optimization on");
            int rs = run(prx, interceptor);
            if(rs != 0)
            {
                return rs;
            }

            Console.WriteLine("Now with AMD");
            rs = runAmd(prxForAMD, amdInterceptor);
            if(rs != 0)
            {
                return rs;
            }

            oa.activate(); // Only necessary for non-collocation optimized tests

            Console.WriteLine("Collocation optimization off");
            interceptor.clear();
            prx = Test.MyObjectPrxHelper.uncheckedCast(prx.ice_collocationOptimized(false));
            rs = run(prx, interceptor);
            if(rs != 0)
            {
                return rs;
            }

            Console.WriteLine("Now with AMD");
            amdInterceptor.clear();
            prxForAMD = Test.MyObjectPrxHelper.uncheckedCast(prxForAMD.ice_collocationOptimized(false));
            rs = runAmd(prxForAMD, amdInterceptor);

            return rs;
        }
Пример #4
0
            public override void run(string[] args)
            {
                var properties = createTestProperties(ref args);

                properties.setProperty("Ice.Package.Test", "Ice.interceptor");
                using (var communicator = initialize(properties))
                {
                    //
                    // Create OA and servants
                    //
                    communicator.getProperties().setProperty("MyOA.AdapterId", "myOA");

                    Ice.ObjectAdapter oa = communicator.createObjectAdapterWithEndpoints("MyOA2", "tcp -h localhost");

                    Ice.Object   servant     = new MyObjectI();
                    InterceptorI interceptor = new InterceptorI(servant);

                    Test.MyObjectPrx prx = Test.MyObjectPrxHelper.uncheckedCast(oa.addWithUUID(interceptor));

                    var output = getWriter();

                    output.WriteLine("Collocation optimization on");
                    runTest(prx, interceptor);
                    output.WriteLine("Now with AMD");
                    interceptor.clear();
                    runAmdTest(prx, interceptor);

                    oa.activate(); // Only necessary for non-collocation optimized tests

                    output.WriteLine("Collocation optimization off");
                    interceptor.clear();
                    prx = Test.MyObjectPrxHelper.uncheckedCast(prx.ice_collocationOptimized(false));
                    runTest(prx, interceptor);

                    output.WriteLine("Now with AMD");
                    interceptor.clear();
                    runAmdTest(prx, interceptor);
                }
            }
Пример #5
0
 private int run(Test.MyObjectPrx prx, InterceptorI interceptor)
 {
     Console.Out.Write("testing simple interceptor... ");
     Console.Out.Flush();
     test(interceptor.getLastOperation() == null);
     test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
     prx.ice_ping();
     test(interceptor.getLastOperation().Equals("ice_ping"));
     test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchOK);
     String typeId = prx.ice_id();
     test(interceptor.getLastOperation().Equals("ice_id"));
     test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchOK);
     test(prx.ice_isA(typeId));
     test(interceptor.getLastOperation().Equals("ice_isA"));
     test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchOK);
     test(prx.add(33, 12) == 45);
     test(interceptor.getLastOperation().Equals("add"));
     test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchOK));
     Console.WriteLine("ok");
     Console.Out.Write("testing retry... ");
     Console.Out.Flush();
     test(prx.addWithRetry(33, 12) == 45);
     test(interceptor.getLastOperation().Equals("addWithRetry"));
     test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchOK));
     Console.WriteLine("ok");
     Console.Out.Write("testing user exception... ");
     Console.Out.Flush();
     try
     {
         prx.badAdd(33, 12);
         test(false);
     }
     catch(Test.InvalidInputException)
     {
         // expected
     }
     test(interceptor.getLastOperation().Equals("badAdd"));
     test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchUserException));
     Console.WriteLine("ok");
     Console.Out.Write("testing ONE... ");
     Console.Out.Flush();
     interceptor.clear();
     try
     {
         prx.notExistAdd(33, 12);
         test(false);
     }
     catch(Ice.ObjectNotExistException)
     {
         // expected
     }
     test(interceptor.getLastOperation().Equals("notExistAdd"));
     test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
     Console.WriteLine("ok");
     Console.Out.Write("testing system exception... ");
     Console.Out.Flush();
     interceptor.clear();
     try
     {
         prx.badSystemAdd(33, 12);
         test(false);
     }
     catch(Ice.UnknownException)
     {
         test(!prx.ice_isCollocationOptimized());
     }
     catch(MySystemException)
     {
         test(prx.ice_isCollocationOptimized());
     }
     catch(Exception)
     {
         test(false);
     }
     test(interceptor.getLastOperation().Equals("badSystemAdd"));
     test(interceptor.getLastStatus() == Ice.DispatchStatus.DispatchAsync);
     Console.WriteLine("ok");
     if(!prx.ice_isCollocationOptimized())
     {
         Console.Out.Write("testing simple AMD... ");
         Console.Out.Flush();
         test(prx.amdAdd(33, 12) == 45);
         test(interceptor.getLastOperation().Equals("amdAdd"));
         test(interceptor.getLastStatus().Equals(Ice.DispatchStatus.DispatchAsync));
         Console.WriteLine("ok");
     }
     return 0;
 }
Пример #6
0
            private void runAmdTest(Test.MyObjectPrx prx, InterceptorI interceptor)
            {
                var output = getWriter();

                output.Write("testing simple interceptor... ");
                output.Flush();
                test(interceptor.getLastOperation() == null);
                test(!interceptor.getLastStatus());
                test(prx.amdAdd(33, 12) == 45);
                test(interceptor.getLastOperation().Equals("amdAdd"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing retry... ");
                output.Flush();
                test(prx.amdAddWithRetry(33, 12) == 45);
                test(interceptor.getLastOperation().Equals("amdAddWithRetry"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing user exception... ");
                try
                {
                    prx.amdBadAdd(33, 12);
                    test(false);
                }
                catch (Test.InvalidInputException)
                {
                    // expected
                }
                test(interceptor.getLastOperation().Equals("amdBadAdd"));
                test(interceptor.getLastStatus());
                Console.WriteLine("ok");

                output.Write("testing ONE... ");
                output.Flush();
                interceptor.clear();
                try
                {
                    prx.amdNotExistAdd(33, 12);
                    test(false);
                }
                catch (Ice.ObjectNotExistException)
                {
                    // expected
                }
                test(interceptor.getLastOperation().Equals("amdNotExistAdd"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing system exception... ");
                output.Flush();
                interceptor.clear();
                try
                {
                    prx.amdBadSystemAdd(33, 12);
                    test(false);
                }
                catch (Ice.UnknownException)
                {
                    test(!prx.ice_isCollocationOptimized());
                }
                catch (MySystemException)
                {
                    test(prx.ice_isCollocationOptimized());
                }
                catch (Exception)
                {
                    test(false);
                }
                test(interceptor.getLastOperation().Equals("amdBadSystemAdd"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");
            }
Пример #7
0
    static int Main(string[] args)
    {
        int status = 0;

        try
        {
            //
            // using statement - communicator is automatically destroyed
            // at the end of this statement
            //
            using (var communicator = Ice.Util.initialize(ref args, "config.server"))
            {
                //
                // Destroy the communicator on Ctrl+C or Ctrl+Break
                //
                Console.CancelKeyPress += (sender, eventArgs) => communicator.destroy();

                if (args.Length > 0)
                {
                    Console.Error.WriteLine("too many arguments");
                    status = 1;
                }
                else
                {
                    // We use separate object adapters for the authenticator and the thermostat in
                    // this demo, so each object has its own endpoints. This way accessibility can
                    // be fined tuned on each object separately, through firewall rules for example.
                    // It's implemented this way to illustrate best practices, even if the demo
                    // doesn't make use of it for simplicity's sake.

                    //
                    // Create an object adapter for the authenticator.
                    //
                    var authenticatorAdapter = communicator.createObjectAdapter("Authenticator");
                    var authenticator        = new AuthenticatorI();
                    authenticatorAdapter.add(authenticator, Ice.Util.stringToIdentity("authenticator"));
                    authenticatorAdapter.activate();

                    //
                    // Set of all the operations to require authorization for.
                    //
                    HashSet <string> securedOperations = new HashSet <string>(new String[] { "setTemp", "shutdown" });
                    //
                    // Create an object adapter for the thermostat.
                    //
                    var thermostatAdapter = communicator.createObjectAdapter("Thermostat");
                    var interceptor       = new InterceptorI(new ThermostatI(), authenticator, securedOperations);
                    thermostatAdapter.add(interceptor, Ice.Util.stringToIdentity("thermostat"));
                    thermostatAdapter.activate();

                    communicator.waitForShutdown();
                }
            }
        }
        catch (Exception ex)
        {
            Console.Error.WriteLine(ex);
            status = 1;
        }

        return(status);
    }
Пример #8
0
            private void runTest(Test.MyObjectPrx prx, InterceptorI <MyObject, MyObjectTraits> interceptor)
            {
                var output = getWriter();

                output.Write("testing simple interceptor... ");
                output.Flush();
                test(interceptor.getLastOperation() == null);
                test(!interceptor.getLastStatus());
                prx.IcePing();
                test(interceptor.getLastOperation().Equals("ice_ping"));
                test(!interceptor.getLastStatus());
                string typeId = prx.IceId();

                test(interceptor.getLastOperation().Equals("ice_id"));
                test(!interceptor.getLastStatus());
                test(prx.IceIsA(typeId));
                test(interceptor.getLastOperation().Equals("ice_isA"));
                test(!interceptor.getLastStatus());
                test(prx.add(33, 12) == 45);
                test(interceptor.getLastOperation().Equals("add"));
                test(!interceptor.getLastStatus());
                output.WriteLine("ok");
                output.Write("testing retry... ");
                output.Flush();
                test(prx.addWithRetry(33, 12) == 45);
                test(interceptor.getLastOperation().Equals("addWithRetry"));
                test(!interceptor.getLastStatus());
                output.WriteLine("ok");
                output.Write("testing user exception... ");
                output.Flush();
                try
                {
                    prx.badAdd(33, 12);
                    test(false);
                }
                catch (Test.InvalidInputException)
                {
                    // expected
                }
                test(interceptor.getLastOperation().Equals("badAdd"));
                test(!interceptor.getLastStatus());
                output.WriteLine("ok");
                output.Write("testing ONE... ");
                output.Flush();
                interceptor.clear();
                try
                {
                    prx.notExistAdd(33, 12);
                    test(false);
                }
                catch (Ice.ObjectNotExistException)
                {
                    // expected
                }
                test(interceptor.getLastOperation().Equals("notExistAdd"));
                test(!interceptor.getLastStatus());
                output.WriteLine("ok");
                output.Write("testing system exception... ");
                output.Flush();
                interceptor.clear();
                try
                {
                    prx.badSystemAdd(33, 12);
                    test(false);
                }
                catch (Ice.UnknownException)
                {
                    test(!prx.IsCollocationOptimized);
                }
                catch (MySystemException)
                {
                    test(prx.IsCollocationOptimized);
                }
                catch (Exception)
                {
                    test(false);
                }
                test(interceptor.getLastOperation().Equals("badSystemAdd"));
                test(!interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing exceptions raised by the interceptor... ");
                output.Flush();
                testInterceptorExceptions(prx);
                output.WriteLine("ok");
            }
Пример #9
0
            private void runAmdTest(Test.MyObjectPrx prx, InterceptorI <MyObject, MyObjectTraits> interceptor)
            {
                var output = getWriter();

                output.Write("testing simple interceptor... ");
                output.Flush();
                test(interceptor.getLastOperation() == null);
                test(!interceptor.getLastStatus());
                test(prx.amdAdd(33, 12) == 45);
                test(interceptor.getLastOperation().Equals("amdAdd"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing retry... ");
                output.Flush();
                test(prx.amdAddWithRetry(33, 12) == 45);
                test(interceptor.getLastOperation().Equals("amdAddWithRetry"));
                test(interceptor.getLastStatus());

                {
                    var ctx = new Dictionary <string, string>();
                    ctx.Add("retry", "yes");
                    for (int i = 0; i < 10; ++i)
                    {
                        test(prx.amdAdd(33, 12, ctx) == 45);
                        test(interceptor.getLastOperation().Equals("amdAdd"));
                        test(interceptor.getLastStatus());
                    }
                }

                output.WriteLine("ok");

                output.Write("testing user exception... ");
                try
                {
                    prx.amdBadAdd(33, 12);
                    test(false);
                }
                catch (InvalidInputException)
                {
                    // expected
                }
                test(interceptor.getLastOperation().Equals("amdBadAdd"));
                test(interceptor.getLastStatus());
                Console.WriteLine("ok");

                output.Write("testing ONE... ");
                output.Flush();
                interceptor.clear();
                try
                {
                    prx.amdNotExistAdd(33, 12);
                    test(false);
                }
                catch (Ice.ObjectNotExistException)
                {
                    // expected
                }
                test(interceptor.getLastOperation().Equals("amdNotExistAdd"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing system exception... ");
                output.Flush();
                interceptor.clear();
                try
                {
                    prx.amdBadSystemAdd(33, 12);
                    test(false);
                }
                catch (Ice.UnknownException)
                {
                    test(!prx.IsCollocationOptimized);
                }
                catch (MySystemException)
                {
                    test(prx.IsCollocationOptimized);
                }
                catch (Exception)
                {
                    test(false);
                }
                test(interceptor.getLastOperation().Equals("amdBadSystemAdd"));
                test(interceptor.getLastStatus());
                output.WriteLine("ok");

                output.Write("testing exceptions raised by the interceptor... ");
                output.Flush();
                testInterceptorExceptions(prx);
                output.WriteLine("ok");
            }
Пример #10
0
    private int run(Test.MyObjectPrx prx, InterceptorI interceptor)
    {
        Console.Out.Write("testing simple interceptor... ");
        Console.Out.Flush();
        test(interceptor.getLastOperation() == null);
        test(!interceptor.getLastStatus());
        prx.ice_ping();
        test(interceptor.getLastOperation().Equals("ice_ping"));
        test(!interceptor.getLastStatus());
        String typeId = prx.ice_id();

        test(interceptor.getLastOperation().Equals("ice_id"));
        test(!interceptor.getLastStatus());
        test(prx.ice_isA(typeId));
        test(interceptor.getLastOperation().Equals("ice_isA"));
        test(!interceptor.getLastStatus());
        test(prx.add(33, 12) == 45);
        test(interceptor.getLastOperation().Equals("add"));
        test(!interceptor.getLastStatus());
        Console.WriteLine("ok");
        Console.Out.Write("testing retry... ");
        Console.Out.Flush();
        test(prx.addWithRetry(33, 12) == 45);
        test(interceptor.getLastOperation().Equals("addWithRetry"));
        test(!interceptor.getLastStatus());
        Console.WriteLine("ok");
        Console.Out.Write("testing user exception... ");
        Console.Out.Flush();
        try
        {
            prx.badAdd(33, 12);
            test(false);
        }
        catch (Test.InvalidInputException)
        {
            // expected
        }
        test(interceptor.getLastOperation().Equals("badAdd"));
        test(!interceptor.getLastStatus());
        Console.WriteLine("ok");
        Console.Out.Write("testing ONE... ");
        Console.Out.Flush();
        interceptor.clear();
        try
        {
            prx.notExistAdd(33, 12);
            test(false);
        }
        catch (Ice.ObjectNotExistException)
        {
            // expected
        }
        test(interceptor.getLastOperation().Equals("notExistAdd"));
        test(!interceptor.getLastStatus());
        Console.WriteLine("ok");
        Console.Out.Write("testing system exception... ");
        Console.Out.Flush();
        interceptor.clear();
        try
        {
            prx.badSystemAdd(33, 12);
            test(false);
        }
        catch (Ice.UnknownException)
        {
            test(!prx.ice_isCollocationOptimized());
        }
        catch (MySystemException)
        {
            test(prx.ice_isCollocationOptimized());
        }
        catch (Exception)
        {
            test(false);
        }
        test(interceptor.getLastOperation().Equals("badSystemAdd"));
        test(!interceptor.getLastStatus());
        Console.WriteLine("ok");

        return(0);
    }
Пример #11
0
        private int runAmd(Test.MyObjectPrx prx, InterceptorI interceptor)
        {
            Console.Out.Write("testing simple interceptor... ");
            Console.Out.Flush();
            test(interceptor.getLastOperation() == null);
            test(!interceptor.getLastStatus());
            test(prx.amdAdd(33, 12) == 45);
            test(interceptor.getLastOperation().Equals("amdAdd"));
            test(interceptor.getLastStatus());
            Console.WriteLine("ok");

            Console.Out.Write("testing retry... ");
            Console.Out.Flush();
            test(prx.amdAddWithRetry(33, 12) == 45);
            test(interceptor.getLastOperation().Equals("amdAddWithRetry"));
            test(interceptor.getLastStatus());
            Console.WriteLine("ok");

            Console.Out.Write("testing user exception... ");
            Console.Out.Flush();
            try
            {
                prx.amdBadAdd(33, 12);
                test(false);
            }
            catch(Test.InvalidInputException)
            {
                // expected
            }
            test(interceptor.getLastOperation().Equals("amdBadAdd"));
            test(interceptor.getLastStatus());
            Console.WriteLine("ok");

            Console.Out.Write("testing ONE... ");
            Console.Out.Flush();
            interceptor.clear();
            try
            {
                prx.amdNotExistAdd(33, 12);
                test(false);
            }
            catch(Ice.ObjectNotExistException)
            {
                // expected
            }
            test(interceptor.getLastOperation().Equals("amdNotExistAdd"));
            test(interceptor.getLastStatus());
            Console.WriteLine("ok");

            Console.Out.Write("testing system exception... ");
            Console.Out.Flush();
            interceptor.clear();
            try
            {
                prx.amdBadSystemAdd(33, 12);
                test(false);
            }
            catch(Ice.UnknownException)
            {
                test(!prx.ice_isCollocationOptimized());
            }
            catch(MySystemException)
            {
                test(prx.ice_isCollocationOptimized());
            }
            catch(Exception)
            {
                test(false);
            }
            test(interceptor.getLastOperation().Equals("amdBadSystemAdd"));
            test(interceptor.getLastStatus());
            Console.WriteLine("ok");
            return 0;
        }