Menu

Cannot compile MyReloadListener in user guide

Help
pafhe
2018-06-09
2018-06-13
  • pafhe

    pafhe - 2018-06-09

    I am running symmetricds as a war file runing in tomcat connected to Apache web server. I am using mysql database and haveset initial.load.create.first=true. Everything works fine except that Foreign key integrity fails with initial insertion of data at the client side. I copied this from the user guide and inserted into the mysql database to disable foreign keys before load and enable them after the load:

    insert into sym_extension (EXTENSION_ID, EXTENSION_TYPE, INTERFACE_NAME, NODE_GROUP_ID, ENABLED, EXTENSION_ORDER, EXTENSION_TEXT, CREATE_TIME, LAST_UPDATE_BY, LAST_UPDATE_TIME) values ('disable ref integrity','java','org.jumpmind.symmetric.load.IReloadListener','ALL',1,1,'import org.jumpmind.db.sql.ISqlTransaction;
    import org.jumpmind.symmetric.ISymmetricEngine;
    import org.jumpmind.symmetric.ext.ISymmetricEngineAware;
    import org.jumpmind.symmetric.load.IReloadListener;
    import org.jumpmind.symmetric.model.Node;
    
    public class MyReloadListener implements IReloadListener, ISymmetricEngineAware {
    
        ISymmetricEngine engine;
    
        @Override
        public void setSymmetricEngine(ISymmetricEngine engine) {
            this.engine = engine;
        }
    
        @Override
        public void beforeReload(ISqlTransaction transaction, Node node, long loadId) {
            engine.getDataService().insertSqlEvent(transaction, node, "SET REFERENTIAL_INTEGRITY FALSE", true, loadId, "initial load");
        }
    
        @Override
        public void afterReload(ISqlTransaction transaction, Node node, long loadId) {
            engine.getDataService().insertSqlEvent(transaction, node, "SET REFERENTIAL_INTEGRITY TRUE", true, loadId, "initial load");
        }
    
    }
    ',current_timestamp,'user',current_timestamp);
    

    But code fails to compile. I am getting this error in the logs.

    08-Jun-2018 20:44:55.806 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 6115 ms [remote-000] - ExtensionService - Found 1 extension points from the database that will be registered [remote-000] - SimpleClassCompiler - Compiling class 'MyReloadListener' [remote-000] - SimpleClassCompiler - Compilation of 'MyReloadListener' failed [remote-000] - SimpleClassCompiler - MyReloadListener at line 1, column 27: package org.jumpmind.db.sql does not exist [remote-000] - SimpleClassCompiler - MyReloadListener at line 2, column 30: package org.jumpmind.symmetric does not exist [remote-000] - SimpleClassCompiler - MyReloadListener at line 3, column 34: package org.jumpmind.symmetric.ext does not exist [remote-000] - SimpleClassCompiler - MyReloadListener at line 4, column 35: package org.jumpmind.symmetric.load does not exist [remote-000] - SimpleClassCompiler - MyReloadListener at line 5, column 36: package org.jumpmind.symmetric.model does not exist [remote-000] - SimpleClassCompiler - MyReloadListener at line 7, column 46: cannot find symbol symbol: class IReloadListener [remote-000] - SimpleClassCompiler - MyReloadListener at line 7, column 63: cannot find symbol symbol: class ISymmetricEngineAware [remote-000] - SimpleClassCompiler - MyReloadListener at line 9, column 5: cannot find symbol symbol: class ISymmetricEngine location: class SimpleClassCompiler1 [remote-000] - SimpleClassCompiler - MyReloadListener at line 12, column 36: cannot find symbol symbol: class ISymmetricEngine location: class SimpleClassCompiler1 [remote-000] - SimpleClassCompiler - MyReloadListener at line 17, column 30: cannot find symbol symbol: class ISqlTransaction location: class SimpleClassCompiler1 [remote-000] - SimpleClassCompiler - MyReloadListener at line 17, column 59: cannot find symbol symbol: class Node location: class SimpleClassCompiler1 [remote-000] - SimpleClassCompiler - MyReloadListener at line 22, column 29: cannot find symbol symbol: class ISqlTransaction location: class SimpleClassCompiler1 [remote-000] - SimpleClassCompiler - MyReloadListener at line 22, column 58: cannot find symbol symbol: class Node location: class SimpleClassCompiler1 [remote-000] - SimpleClassCompiler - MyReloadListener at line 11, column 5: method does not override or implement a method from a supertype [remote-000] - SimpleClassCompiler - MyReloadListener at line 16, column 5: method does not override or implement a method from a supertype [remote-000] - SimpleClassCompiler - MyReloadListener at line 21, column 5: method does not override or implement a method from a supertype [remote-000] - ExtensionService - Error while compiling Java extension disable ref integrity org.jumpmind.util.SimpleClassCompilerException at org.jumpmind.util.SimpleClassCompiler.getCompiledClass(SimpleClassCompiler.java:117) at org.jumpmind.symmetric.service.impl.ExtensionService.registerExtension(ExtensionService.java:109) at org.jumpmind.symmetric.service.impl.ExtensionService.refresh(ExtensionService.java:100) at org.jumpmind.symmetric.service.impl.ClientExtensionService.refresh(ClientExtensionService.java:46) at org.jumpmind.symmetric.ClientSymmetricEngine.init(ClientSymmetricEngine.java:228) at org.jumpmind.symmetric.web.ServerSymmetricEngine.init(ServerSymmetricEngine.java:66) at org.jumpmind.symmetric.ClientSymmetricEngine.<init>(ClientSymmetricEngine.java:151) at org.jumpmind.symmetric.web.ServerSymmetricEngine.<init>(ServerSymmetricEngine.java:51) at org.jumpmind.symmetric.web.SymmetricEngineHolder.create(SymmetricEngineHolder.java:247) at org.jumpmind.symmetric.web.SymmetricEngineHolder$EngineStarter.run(SymmetricEngineHolder.java:527) [remote-000] - ClientExtensionService - Found 7 extension points from spring that will be registered [remote-000] - AbstractSymmetricEngine - Initializing SymmetricDS database

     
  • Mark Michalek

    Mark Michalek - 2018-06-13

    There are parameters which allow you to run SQL before and after your initial load which may be simpler for your configuration here. See:
    initial.load.before.sql
    and
    initial.load.after.sql

     

Log in to post a comment.