Examples of VoltCompiler


Examples of org.voltdb.compiler.VoltCompiler

        MiscUtils.copyFile(builder.getPathToDeployment(), pathToDeployment);

        // This is maybe cheating a little bit?
        InMemoryJarfile jarfile = new InMemoryJarfile();
        for (Class<?> clazz : PROC_CLASSES) {
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(jarfile, clazz);
        }
        for (Class<?> clazz : EXTRA_CLASSES) {
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(jarfile, clazz);
        }

        try {
            VoltDB.Configuration config = new VoltDB.Configuration();
            config.m_pathToCatalog = pathToCatalog;
            config.m_pathToDeployment = pathToDeployment;
            startSystem(config);

            ClientResponse resp;
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            System.out.println(resp.getResults()[0]);
            // New cluster, you're like summer vacation...
            assertEquals(0, resp.getResults()[0].getRowCount());
            assertFalse(VoltTableTestHelpers.moveToMatchingRow(resp.getResults()[0], "CLASS_NAME",
                        PROC_CLASSES[0].getCanonicalName()));
            boolean threw = false;
            try {
                resp = m_client.callProcedure(PROC_CLASSES[0].getSimpleName());
            }
            catch (ProcCallException pce) {
                assertTrue(pce.getMessage().contains("was not found"));
                threw = true;
            }
            assertTrue(threw);

            resp = m_client.callProcedure("@UpdateClasses", jarfile.getFullJarBytes(), null);
            System.out.println(((ClientResponseImpl)resp).toJSONString());

            // Are we still like summer vacation?
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            VoltTable results = resp.getResults()[0];
            System.out.println(results);
            assertEquals(3, results.getRowCount());
            assertTrue(VoltTableTestHelpers.moveToMatchingRow(results, "CLASS_NAME",
                        PROC_CLASSES[0].getCanonicalName()));
            assertEquals(1L, results.getLong("VOLT_PROCEDURE"));
            assertEquals(0L, results.getLong("ACTIVE_PROC"));
            // Can we turn it into a procedure?
            resp = m_client.callProcedure("@AdHoc", "create procedure from class " +
                    PROC_CLASSES[0].getCanonicalName() + ";");
            System.out.println(((ClientResponseImpl)resp).toJSONString());
            resp = m_client.callProcedure(PROC_CLASSES[0].getSimpleName());
            assertEquals(ClientResponse.SUCCESS, resp.getStatus());
            results = resp.getResults()[0];
            assertEquals(10L, results.asScalarLong());

            // now, let's collide identically simpleName'd classes
            InMemoryJarfile boom = new InMemoryJarfile();
            for (Class<?> clazz : COLLIDING_CLASSES) {
                VoltCompiler comp = new VoltCompiler();
                comp.addClassToJar(boom, clazz);
            }
            resp = m_client.callProcedure("@UpdateClasses", boom.getFullJarBytes(), null);
            System.out.println(((ClientResponseImpl)resp).toJSONString());

            // should be okay to have classnames with same simplename
View Full Code Here

Examples of org.voltdb.compiler.VoltCompiler

            startSystem(config);

            // Something sane ought to work
            ClientResponse resp;
            InMemoryJarfile boom = new InMemoryJarfile();
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(boom, org.voltdb_testprocs.updateclasses.InnerClassesTestProc.class);
            try {
                resp = m_client.callProcedure("@UpdateClasses", boom.getFullJarBytes(), null);
                System.out.println(((ClientResponseImpl)resp).toJSONString());
            }
            catch (ProcCallException pce) {
                pce.printStackTrace();
                fail("Loading proc with inner classes should succeed");
            }

            // Error in non-visible inner class static initializer?
            boolean threw = false;
            boom = new InMemoryJarfile();
            comp = new VoltCompiler();
            comp.addClassToJar(boom, org.voltdb_testprocs.updateclasses.BadInnerClassesTestProc.class);
            try {
                resp = m_client.callProcedure("@UpdateClasses", boom.getFullJarBytes(), null);
                System.out.println(((ClientResponseImpl)resp).toJSONString());
            }
            catch (ProcCallException pce) {
View Full Code Here

Examples of org.voltdb.compiler.VoltCompiler

            config.m_pathToDeployment = pathToDeployment;
            startSystem(config);

            ClientResponse resp;
            InMemoryJarfile boom = new InMemoryJarfile();
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(boom, org.voltdb_testprocs.updateclasses.testBadInitializerProc.class);
            boolean threw = false;
            try {
                resp = m_client.callProcedure("@UpdateClasses", boom.getFullJarBytes(), null);
                System.out.println(((ClientResponseImpl)resp).toJSONString());
            }
            catch (ProcCallException pce) {
                pce.printStackTrace();
                threw = true;
            }
            assertTrue("Bad class jar should have thrown", threw);

            threw = false;
            boom = new InMemoryJarfile();
            comp = new VoltCompiler();
            comp.addClassToJar(boom, org.voltdb_testprocs.updateclasses.BadClassLoadClass.class);
            try {
                resp = m_client.callProcedure("@UpdateClasses", boom.getFullJarBytes(), null);
                System.out.println(((ClientResponseImpl)resp).toJSONString());
            }
            catch (ProcCallException pce) {
View Full Code Here

Examples of org.voltdb.compiler.VoltCompiler

        MiscUtils.copyFile(builder.getPathToDeployment(), pathToDeployment);

        // This is maybe cheating a little bit?
        InMemoryJarfile jarfile = new InMemoryJarfile();
        for (Class<?> clazz : PROC_CLASSES) {
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(jarfile, clazz);
        }
        for (Class<?> clazz : EXTRA_CLASSES) {
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(jarfile, clazz);
        }
        for (Class<?> clazz : COLLIDING_CLASSES) {
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(jarfile, clazz);
        }

        try {
            VoltDB.Configuration config = new VoltDB.Configuration();
            config.m_pathToCatalog = pathToCatalog;
            config.m_pathToDeployment = pathToDeployment;
            startSystem(config);

            ClientResponse resp;
            // Make sure we're clean
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            assertEquals(0, resp.getResults()[0].getRowCount());

            // Add the jarfile we built
            resp = m_client.callProcedure("@UpdateClasses", jarfile.getFullJarBytes(), null);
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            assertEquals(PROC_CLASSES.length + EXTRA_CLASSES.length + COLLIDING_CLASSES.length,
                    resp.getResults()[0].getRowCount());

            // remove one class
            assertTrue(findClassInSystemCatalog(PROC_CLASSES[0].getCanonicalName()));
            resp = m_client.callProcedure("@UpdateClasses", null, PROC_CLASSES[0].getCanonicalName());
            assertFalse(findClassInSystemCatalog(PROC_CLASSES[0].getCanonicalName()));

            // remove everything under fullddlfeatures
            assertTrue(findClassInSystemCatalog(COLLIDING_CLASSES[0].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(COLLIDING_CLASSES[1].getCanonicalName()));
            resp = m_client.callProcedure("@UpdateClasses", null,
                    "org.voltdb_testprocs.fullddlfeatures.*");
            assertFalse(findClassInSystemCatalog(COLLIDING_CLASSES[0].getCanonicalName()));
            assertFalse(findClassInSystemCatalog(COLLIDING_CLASSES[1].getCanonicalName()));

            // Remove everything left
            assertTrue(findClassInSystemCatalog(PROC_CLASSES[1].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(EXTRA_CLASSES[0].getCanonicalName()));
            resp = m_client.callProcedure("@UpdateClasses", null, "org.voltdb**");
            assertFalse(findClassInSystemCatalog(PROC_CLASSES[1].getCanonicalName()));
            assertFalse(findClassInSystemCatalog(EXTRA_CLASSES[0].getCanonicalName()));
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            assertEquals(0, resp.getResults()[0].getRowCount());

            // put everything back
            // Add the jarfile we built
            resp = m_client.callProcedure("@UpdateClasses", jarfile.getFullJarBytes(), null);
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            assertEquals(PROC_CLASSES.length + EXTRA_CLASSES.length + COLLIDING_CLASSES.length,
                    resp.getResults()[0].getRowCount());

            // delete the common simple names from both packages simultaneously
            resp = m_client.callProcedure("@UpdateClasses", null,
                    "**testImportProc   , **testCreateProcFromClassProc");
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            // should be the only thing left
            assertEquals(1, resp.getResults()[0].getRowCount());
            assertTrue(findClassInSystemCatalog(EXTRA_CLASSES[0].getCanonicalName()));

            // make a jar without the extra
            InMemoryJarfile jarfile2 = new InMemoryJarfile();
            for (Class<?> clazz : PROC_CLASSES) {
                VoltCompiler comp = new VoltCompiler();
                comp.addClassToJar(jarfile2, clazz);
            }
            for (Class<?> clazz : COLLIDING_CLASSES) {
                VoltCompiler comp = new VoltCompiler();
                comp.addClassToJar(jarfile2, clazz);
            }

            // finally, delete what's left and put the new jar in simultaneously
            resp = m_client.callProcedure("@UpdateClasses", jarfile2.getFullJarBytes(),
                    "**updateclasses.*");
            resp = m_client.callProcedure("@SystemCatalog", "CLASSES");
            // extra class should be gone, others installed
            assertEquals(PROC_CLASSES.length + COLLIDING_CLASSES.length,
                    resp.getResults()[0].getRowCount());
            assertFalse(findClassInSystemCatalog(EXTRA_CLASSES[0].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(PROC_CLASSES[0].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(PROC_CLASSES[1].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(COLLIDING_CLASSES[0].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(COLLIDING_CLASSES[1].getCanonicalName()));

            // now add a class with inner classes
            InMemoryJarfile inner = new InMemoryJarfile();
            VoltCompiler comp = new VoltCompiler();
            comp.addClassToJar(inner, org.voltdb_testprocs.updateclasses.InnerClassesTestProc.class);
            resp = m_client.callProcedure("@UpdateClasses", inner.getFullJarBytes(), null);
            // old stuff should have survived
            assertTrue(findClassInSystemCatalog(PROC_CLASSES[0].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(PROC_CLASSES[1].getCanonicalName()));
            assertTrue(findClassInSystemCatalog(COLLIDING_CLASSES[0].getCanonicalName()));
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.