Пример #1
0
        internal static AuthorityPath scanAuthority(ParseStream oParseStream)
        {
            GCSAuthority oGCSAuthority = new GCSAuthority();
            if (oGCSAuthority.scan(oParseStream))
            {
                return oGCSAuthority;
            }

            XRefAuthority oXRefAuthority = new XRefAuthority();
            if (oXRefAuthority.scan(oParseStream))
            {
                return oXRefAuthority;
            }

            IRIAuthority oIRIAuthority = new IRIAuthority();
            if (oIRIAuthority.scan(oParseStream))
            {
                return oIRIAuthority;
            }

            return null;
        }
Пример #2
0
        /*
        ****************************************************************************
        * testCache()
        ****************************************************************************
        */
        /**
        *
        */
        public void testCache()
        {
            Cache oCache = new Cache(1000);
            assertTrue("Initial cache not empty", oCache.getNumNodes() == 0);

            XRD oDesc = new XRD();
            Service atAuthService = new Service();
            atAuthService.addMediaType(Tags.CONTENT_TYPE_XRDS + ";trust=none");
            atAuthService.addType(Tags.SERVICE_AUTH_RES);
            atAuthService.addURI("http://gcs.epok.net/xri/resolve?ns=at");
            oDesc.addService(atAuthService);

            XRD oDummy = new XRD();
            Service dummyService = new Service();
            dummyService.addMediaType(Tags.CONTENT_TYPE_XRDS + ";trust=none");
            dummyService.addType(Tags.SERVICE_AUTH_RES);
            dummyService.addURI("http://www.example.com/xri/resolve?id=1");
            oDummy.addService(dummyService);

            GCSAuthority oAuth = new GCSAuthority("@");
            oCache.stuff(oAuth, oDesc);
            assertTrue("Initial cache incorrect", oCache.getNumNodes() == 1);

            oCache.stuff(
            (XRIAuthority) AuthorityPath.buildAuthorityPath("@!a!b!foo"), oDummy);
            assertTrue("Cache size incorrect", oCache.getNumNodes() == 4);

            oCache.stuff(
            (XRIAuthority) AuthorityPath.buildAuthorityPath("@!a!c!moo"), oDummy);
            assertTrue("Cache size incorrect", oCache.getNumNodes() == 6);

            oCache.stuff(
            (XRIAuthority) AuthorityPath.buildAuthorityPath("@!a!c!woo"), oDummy);
            assertTrue("Cache size incorrect", oCache.getNumNodes() == 7);

            Cache.CachedValue oVal =
            oCache.find(
                (XRIAuthority) AuthorityPath.buildAuthorityPath("@!a!c!woo"),
                false);
            assertTrue("Cached value not found", oVal != null);

            oVal =
            oCache.find(
                (XRIAuthority) AuthorityPath.buildAuthorityPath("@!a!b!woo"),
                false);
            assertTrue("Cached value should not have been found", oVal == null);
            oCache.dump();
        }
Пример #3
0
        /*
        ****************************************************************************
        * testConcurrent()
        ****************************************************************************
        */
        /**
        *
        */
        public void testConcurrent()
        {
            Cache oCache = new Cache(1000);
            oCache.prune((XRIAuthority) AuthorityPath.buildAuthorityPath("@"));
            assertTrue("Initial cache not empty", oCache.getNumNodes() == 0);

            XRD oDesc = new XRD();
            Service atAuthService = new Service();
            atAuthService.addMediaType(Tags.CONTENT_TYPE_XRDS + ";trust=none");
            atAuthService.addType(Tags.SERVICE_AUTH_RES);
            atAuthService.addURI("http://gcs.epok.net/xri/resolve?ns=at");
            oDesc.addService(atAuthService);

            GCSAuthority oAuth = new GCSAuthority("@");
            oCache.stuff(oAuth, oDesc);
            assertTrue("Initial cache incorrect", oCache.getNumNodes() == 1);

            oCache.setMaxSize(5);

            Random oRand = new Random();

            try
            {
            Thread[] oThreads = new StuffPruneThread[100];
            for (int i = 0; i < oThreads.length; i++)
            {
                oThreads[i] = new StuffPruneThread(oRand);
            }

            for (int i = 0; i < oThreads.length; i++)
            {
                oThreads[i].start();
            }

            for (int i = 0; i < oThreads.length; i++)
            {
                oThreads[i].join();
            }
            }
            catch (Exception e)
            {
            assertTrue("Unexpected exception" + e, false);
            }

            oCache.dump();

            assertTrue(
            "Max cache size not honored",
            oCache.getNumNodes() <= oCache.getMaxSize());

            Cache.CachedValue oVal =
            oCache.find(
                (XRIAuthority) AuthorityPath.buildAuthorityPath("@"), false);
            assertTrue("Cached value for @ not found", oVal != null);
        }