Search in sources :

Example 51 with Message

use of de.janrufmonitor.exception.Message in project janrufmonitor by tbrandt77.

the class UpdateManager method getUpdates.

public List getUpdates() {
    List l = new ArrayList();
    Properties overview = this.getOverview();
    if (overview == null) {
        PropagationFactory.getInstance().fire(new Message(Message.ERROR, this.getNamespace(), "nooverview", new Exception("Empty update page.")));
        return l;
    }
    if (overview.size() == 0) {
        return l;
    }
    this.m_logger.info("Available updates modules :" + overview);
    // get installed modules
    List installedModules = InstallerEngine.getInstance().getModuleList();
    installedModules.add("core");
    if (m_logger.isLoggable(Level.INFO))
        this.m_logger.info("Installed modules :" + installedModules);
    List retrievingModules = new ArrayList();
    Iterator it = installedModules.iterator();
    String key = null;
    while (it.hasNext()) {
        key = (String) it.next();
        if (overview.containsKey(key)) {
            retrievingModules.add(key);
        }
    }
    if (m_logger.isLoggable(Level.INFO))
        this.m_logger.info("Retrieving update information for modules :" + retrievingModules);
    String name = null;
    Properties p = null;
    for (int i = 0, n = retrievingModules.size(); i < n; i++) {
        name = (String) retrievingModules.get(i);
        // 2008/08/10: version specific core update capability
        if (name.equalsIgnoreCase("core")) {
            name += this.generatedCoreTag();
            if (m_logger.isLoggable(Level.INFO))
                m_logger.info("Check updated for module " + name);
            p = this.getModule(overview.getProperty(name, "-"));
            if (p != null) {
                if (InstallerRuleEngine.getInstance().isValidHidden(p)) {
                    // check if version is equal
                    Properties desc = InstallerEngine.getInstance().getDescriptor("core");
                    if (desc != null && p.getProperty(InstallerConst.DESCRIPTOR_VERSION, "").compareTo(desc.getProperty(InstallerConst.DESCRIPTOR_VERSION, "")) > 0)
                        l.add(p);
                    continue;
                }
            }
            name = "core";
            if (m_logger.isLoggable(Level.INFO))
                m_logger.info("Re-Check updated for module " + name);
        }
        p = this.getModule(overview.getProperty(name, "-"));
        if (p != null) {
            if (InstallerRuleEngine.getInstance().isValidHidden(p)) {
                // check if version is equal
                Properties desc = InstallerEngine.getInstance().getDescriptor(name);
                // 
                if (desc != null && isUpdateVersion(desc.getProperty(InstallerConst.DESCRIPTOR_VERSION, ""), p.getProperty(InstallerConst.DESCRIPTOR_VERSION, "")))
                    l.add(p);
            } else {
                if (m_logger.isLoggable(Level.INFO))
                    this.m_logger.info("Descriptor " + p + " not used in update list.");
                this.isMoreUpdates = true;
            }
        }
    }
    return l;
}
Also used : Message(de.janrufmonitor.exception.Message) ArrayList(java.util.ArrayList) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) Properties(java.util.Properties) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) UnsupportedEncodingException(java.io.UnsupportedEncodingException)

Example 52 with Message

use of de.janrufmonitor.exception.Message in project janrufmonitor by tbrandt77.

the class RunUI method go.

public static void go() {
    try {
        LoggingInitializer.run();
        RunUI.m_logger = LogManager.getLogManager().getLogger(IJAMConst.DEFAULT_LOGGER);
        RunUI.m_logger.info("Starting ...");
        RunUI.m_logger.info("Running version " + IJAMConst.VERSION_DISPLAY + " (Build: " + IJAMConst.VERSION_BUILD + ")");
        if (RunUI.m_logger.isLoggable(Level.FINE)) {
            Properties env = System.getProperties();
            Iterator iter = env.keySet().iterator();
            String key = null;
            RunUI.m_logger.fine("Reading Java runtime environment...");
            while (iter.hasNext()) {
                key = (String) iter.next();
                RunUI.m_logger.fine(key + " = " + env.getProperty(key));
            }
        }
        boolean isJavaVersionOK = false;
        String javaversion = System.getProperty("java.specification.version");
        if ((javaversion != null && javaversion.compareTo("1.8") >= 0))
            isJavaVersionOK = true;
        javaversion = ((System.getProperty("java.version").length() == 1 || System.getProperty("java.version").length() == 2) ? System.getProperty("java.version") : System.getProperty("java.version").substring(0, 3));
        if ((!isJavaVersionOK && javaversion.compareTo("1.8") >= 0))
            isJavaVersionOK = true;
        if (!isJavaVersionOK) {
            Thread t = new Thread() {

                public void run() {
                    Display.getDefault().syncExec(new Runnable() {

                        public void run() {
                            Shell shell = new Shell(Display.getDefault());
                            shell.setSize(0, 0);
                            int style = SWT.APPLICATION_MODAL | SWT.OK;
                            MessageBox messageBox = new MessageBox(shell, style);
                            String lang = System.getProperty("user.language");
                            if (lang == null)
                                lang = "de";
                            messageBox.setMessage(lang.equalsIgnoreCase("de") ? "jAnrufmonitor kann nicht gestartet werden, da Java nur in\nVersion " + System.getProperty("java.specification.version") + " installiert ist. Es wird jedoch mindestens\nJava Version 1.8 ben\u00F6tigt." : "jAnrufmonitor wrong Java version.");
                            messageBox.setText(lang.equalsIgnoreCase("de") ? "jAnrufmonitor - Fehler beim Programmstart" : "jAnrufmonitor Error...");
                            if (messageBox.open() == SWT.OK) {
                                RunUI.m_logger.severe("Emergency exit: Invalid Java Version: " + System.getProperty("java.specification.version"));
                                System.exit(0);
                            }
                        }
                    });
                }
            };
            t.setName("JAM-Check-Java-Thread-(non-deamon)");
            t.start();
            try {
                Thread.sleep(30000);
            } catch (InterruptedException e) {
                RunUI.m_logger.log(Level.SEVERE, e.getMessage(), e);
            }
            RunUI.m_logger.severe("Emergency exit: Invalid Java Version: " + System.getProperty("java.specification.version"));
            System.exit(0);
        }
        // set Jam classloader
        if (JamCacheMasterClassLoader.getInstance().isValid()) {
            Thread.currentThread().setContextClassLoader(JamCacheMasterClassLoader.getInstance());
            if (RunUI.m_logger.isLoggable(Level.INFO))
                RunUI.m_logger.info("Set new context classloader...");
            PIMRuntime.getInstance().startup();
            if (RunUI.m_logger.isLoggable(Level.FINE))
                PhonenumberAnalyzer.getInstance(PIMRuntime.getInstance()).analyze();
            RunUI.registerShutdownHook();
        } else {
            Thread thread = new Thread() {

                public void run() {
                    Display.getDefault().syncExec(new Runnable() {

                        public void run() {
                            Shell shell = new Shell(Display.getDefault());
                            shell.setSize(0, 0);
                            int style = SWT.APPLICATION_MODAL | SWT.OK;
                            MessageBox messageBox = new MessageBox(shell, style);
                            String lang = System.getProperty("user.language");
                            if (lang == null)
                                lang = "de";
                            messageBox.setMessage(lang.equalsIgnoreCase("de") ? "jAnrufmonitor kann nicht erneut gestartet werden. Er ist\nbereits gestartet und kann nur einmal ausgef\u00FChrt werden." : "jAnrufmonitor already running.");
                            messageBox.setText(lang.equalsIgnoreCase("de") ? "jAnrufmonitor - Fehler beim Programmstart" : "jAnrufmonitor Error...");
                            if (messageBox.open() == SWT.OK) {
                                RunUI.m_logger.severe("Emergency exit: jAnrufmonitor already running! Failed to initialize JamCacheMasterClassLoader. Aborting startup. Make sure that only one instance of jAnrufmonitor is running and clear all files from folder: %jam-installpath%/lib/cache.");
                                System.exit(0);
                            }
                        }
                    });
                }
            };
            thread.setName("JAM-ShutdownNotifier-Thread-(non-deamon)");
            thread.start();
            try {
                Thread.sleep(30000);
            } catch (InterruptedException e) {
                RunUI.m_logger.log(Level.SEVERE, e.getMessage(), e);
            }
            RunUI.m_logger.severe("Emergency exit: jAnrufmonitor already running! Failed to initialize JamCacheMasterClassLoader. Aborting startup. Make sure that only one instance of jAnrufmonitor is running and clear all files from folder: %jam-installpath%/lib/cache.");
            System.exit(0);
        }
    } catch (Exception ex) {
        RunUI.m_logger.severe("Emergency exit: Unexpected error: " + ex.toString() + ": " + ex.getMessage() + " - " + ex.getCause());
        RunUI.m_logger.severe("Program terminated unexpected. Please check your Java installation and jAnrufmonitor configuration for problems.");
        RunUI.dumpException(ex);
        PropagationFactory.getInstance().fire(new Message(ex));
        System.out.println("Emergency exit: Unexpected error: " + ex.toString() + ": " + ex.getMessage() + " - " + ex.getCause());
        System.exit(0);
    }
}
Also used : Shell(org.eclipse.swt.widgets.Shell) Message(de.janrufmonitor.exception.Message) Iterator(java.util.Iterator) Properties(java.util.Properties) MessageBox(org.eclipse.swt.widgets.MessageBox)

Example 53 with Message

use of de.janrufmonitor.exception.Message in project janrufmonitor by tbrandt77.

the class RunUI64 method go.

public static void go() {
    try {
        RunUI64.m_logger = LogManager.getLogManager().getLogger(IJAMConst.DEFAULT_LOGGER);
        RunUI64.m_logger.info("Starting ...");
        RunUI64.m_logger.info("Running version " + IJAMConst.VERSION_DISPLAY + " (Build: " + IJAMConst.VERSION_BUILD + ")");
        if (RunUI64.m_logger.isLoggable(Level.FINE)) {
            Properties env = System.getProperties();
            Iterator iter = env.keySet().iterator();
            String key = null;
            RunUI64.m_logger.fine("Reading Java runtime environment...");
            while (iter.hasNext()) {
                key = (String) iter.next();
                System.out.println(key + " = " + env.getProperty(key));
                RunUI64.m_logger.fine(key + " = " + env.getProperty(key));
            }
        }
        boolean isJavaVersionOK = false;
        String javaversion = System.getProperty("java.specification.version");
        if ((javaversion != null && javaversion.compareTo("1.8") >= 0))
            isJavaVersionOK = true;
        javaversion = ((System.getProperty("java.version").length() == 1 || System.getProperty("java.version").length() == 2) ? System.getProperty("java.version") : System.getProperty("java.version").substring(0, 3));
        if ((!isJavaVersionOK && javaversion.compareTo("1.8") >= 0))
            isJavaVersionOK = true;
        if (!isJavaVersionOK) {
            Thread t = new Thread() {

                public void run() {
                    Display.getDefault().syncExec(new Runnable() {

                        public void run() {
                            Shell shell = new Shell(Display.getDefault());
                            shell.setSize(0, 0);
                            int style = SWT.APPLICATION_MODAL | SWT.OK | SWT.WRAP;
                            MessageBox messageBox = new MessageBox(shell, style);
                            String lang = System.getProperty("user.language");
                            if (lang == null)
                                lang = "de";
                            messageBox.setMessage(lang.equalsIgnoreCase("de") ? "jAnrufmonitor kann nicht gestartet werden, da Java nur in Version " + System.getProperty("java.specification.version") + " installiert ist. Es wird jedoch mindestens Java Version 1.8 ben\u00F6tigt." : "jAnrufmonitor wrong Java version.");
                            messageBox.setText(lang.equalsIgnoreCase("de") ? "jAnrufmonitor - Fehler beim Programmstart" : "jAnrufmonitor Error...");
                            if (messageBox.open() == SWT.OK) {
                                RunUI64.m_logger.severe("Emergency exit: Invalid Java Version: " + System.getProperty("java.specification.version"));
                                System.exit(0);
                            }
                        }
                    });
                }
            };
            t.setName("JAM-Check-Java-Thread-(non-deamon)");
            t.start();
            try {
                Thread.sleep(30000);
            } catch (InterruptedException e) {
                RunUI64.m_logger.log(Level.SEVERE, e.getMessage(), e);
            }
            RunUI64.m_logger.severe("Emergency exit: Invalid Java Version: " + System.getProperty("java.specification.version"));
            System.exit(0);
        }
        // set Jam classloader
        if (JamCacheMasterClassLoader.getInstance().isValid()) {
            // Thread.currentThread().setContextClassLoader(JamCacheMasterClassLoader.getInstance());
            if (RunUI64.m_logger.isLoggable(Level.INFO))
                RunUI64.m_logger.info("Set new context classloader...");
            PIMRuntime.getInstance().startup();
            if (RunUI64.m_logger.isLoggable(Level.FINE))
                PhonenumberAnalyzer.getInstance(PIMRuntime.getInstance()).analyze();
            RunUI64.registerShutdownHook();
        } else {
            Thread thread = new Thread() {

                public void run() {
                    Display.getDefault().syncExec(new Runnable() {

                        public void run() {
                            Shell shell = new Shell(Display.getDefault());
                            shell.setSize(0, 0);
                            int style = SWT.APPLICATION_MODAL | SWT.OK | SWT.WRAP;
                            MessageBox messageBox = new MessageBox(shell, style);
                            String lang = System.getProperty("user.language");
                            if (lang == null)
                                lang = "de";
                            messageBox.setMessage(lang.equalsIgnoreCase("de") ? "jAnrufmonitor kann nicht erneut gestartet werden. Er ist bereits gestartet und kann nur einmal ausgef\u00FChrt werden." : "jAnrufmonitor already running.");
                            messageBox.setText(lang.equalsIgnoreCase("de") ? "jAnrufmonitor - Fehler beim Programmstart" : "jAnrufmonitor Error...");
                            if (messageBox.open() == SWT.OK) {
                                RunUI64.m_logger.severe("Emergency exit: jAnrufmonitor already running! Failed to initialize JamCacheMasterClassLoader. Aborting startup. Make sure that only one instance of jAnrufmonitor is running and clear all files from folder: %jam-installpath%/lib/cache.");
                                System.exit(0);
                            }
                        }
                    });
                }
            };
            thread.setName("JAM-ShutdownNotifier-Thread-(non-deamon)");
            thread.start();
            try {
                Thread.sleep(30000);
            } catch (InterruptedException e) {
                RunUI64.m_logger.log(Level.SEVERE, e.getMessage(), e);
            }
            RunUI64.m_logger.severe("Emergency exit: jAnrufmonitor already running! Failed to initialize JamCacheMasterClassLoader. Aborting startup. Make sure that only one instance of jAnrufmonitor is running and clear all files from folder: %jam-installpath%/lib/cache.");
            System.exit(0);
        }
    } catch (Exception ex) {
        RunUI64.m_logger.severe("Emergency exit: Unexpected error: " + ex.toString() + ": " + ex.getMessage() + " - " + ex.getCause());
        RunUI64.m_logger.severe("Program terminated unexpected. Please check your Java installation and jAnrufmonitor configuration for problems.");
        RunUI64.dumpException(ex);
        PropagationFactory.getInstance().fire(new Message(ex));
        System.out.println("Emergency exit: Unexpected error: " + ex.toString() + ": " + ex.getMessage() + " - " + ex.getCause());
        System.exit(0);
    }
}
Also used : Shell(org.eclipse.swt.widgets.Shell) Message(de.janrufmonitor.exception.Message) Iterator(java.util.Iterator) Properties(java.util.Properties) InvocationTargetException(java.lang.reflect.InvocationTargetException) MessageBox(org.eclipse.swt.widgets.MessageBox)

Example 54 with Message

use of de.janrufmonitor.exception.Message in project janrufmonitor by tbrandt77.

the class SynchronizerService method synchronize.

public void synchronize(IProgressMonitor progressMonitor) {
    if (m_activeSync)
        return;
    this.m_activeSync = true;
    long start = System.currentTimeMillis();
    if (m_logger.isLoggable(Level.INFO))
        m_logger.info("--> Start Synchronizing (" + (progressMonitor == null ? "w/o progress monitor" : "with progress monitor") + ")");
    if (this.m_tamMap == null)
        this.m_tamMap = new HashMap();
    this.m_tamMap.clear();
    if (progressMonitor != null) {
        progressMonitor.beginTask(getI18nManager().getString(getNamespace(), "refreshprogress", "label", getLanguage()), IProgressMonitor.UNKNOWN);
        progressMonitor.worked(1);
        progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "loginprogress", "label", getLanguage()));
    }
    try {
        Thread.sleep((progressMonitor != null ? 500 : 100));
    } catch (InterruptedException e1) {
        m_logger.log(Level.SEVERE, e1.getMessage(), e1);
    }
    FirmwareManager fwm = FirmwareManager.getInstance();
    // fwm.startup();
    try {
        if (!fwm.isLoggedIn())
            fwm.login();
        if (progressMonitor != null)
            progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "getprogress", "label", getLanguage()));
        try {
            Thread.sleep((progressMonitor != null ? 1500 : 100));
        } catch (InterruptedException e1) {
            m_logger.log(Level.SEVERE, e1.getMessage(), e1);
        }
        long synctime = Long.parseLong(SynchronizerService.this.m_configuration.getProperty(CFG_SYNCTIME, "-1"));
        long oldestCallTime = -1;
        // added: 2013/02/04: check sync all
        boolean syncall = SynchronizerService.this.m_configuration.getProperty(CFG_SYNCALL, "false").equalsIgnoreCase("true");
        if (syncall) {
            synctime = -1;
            if (m_logger.isLoggable(Level.INFO))
                m_logger.info("Sync all option enabled.");
        }
        // sub getSynctimeOffset from time
        if (synctime > 0) {
            if (m_logger.isLoggable(Level.INFO))
                m_logger.info("Sync timestamp before decrementing offset: " + synctime);
            synctime -= this.getSyncTimeOffset();
            if (m_logger.isLoggable(Level.INFO))
                m_logger.info("Sync timestamp after decrementing offset: " + synctime);
        }
        if (m_logger.isLoggable(Level.INFO))
            m_logger.info("Syncing call list from FRITZ!Box with timestamp: " + synctime);
        List result = fwm.getCallList(synctime);
        if (m_logger.isLoggable(Level.INFO))
            m_logger.info("Call list size from FRITZ!Box: " + result.size());
        if (result.size() > 0) {
            ICallList m_callList = PIMRuntime.getInstance().getCallFactory().createCallList(result.size());
            List m_prefilteredList = new ArrayList(result.size());
            FritzBoxCallCsv call = null;
            Properties conf = PIMRuntime.getInstance().getConfigManagerFactory().getConfigManager().getProperties(FritzBoxMonitor.NAMESPACE);
            ICall c = null;
            FritzBoxUUIDManager.getInstance().init();
            boolean skipOutgoing = !Boolean.parseBoolean(conf.getProperty(CFG_OUTGOING, "false"));
            for (int i = 0, j = result.size(); i < j; i++) {
                call = new FritzBoxCallCsv((String) result.get(i), conf);
                // added 2016/01/11: check if outgoing call applicable
                if (call != null) {
                    if (call.isOutgoingCall() && skipOutgoing) {
                        if (m_logger.isLoggable(Level.INFO))
                            m_logger.info("Call import skipped by call state (outgoing) from FRITZ!Box.");
                        continue;
                    }
                    Date calltime = call.getPrecalculatedDate();
                    if (calltime != null && calltime.getTime() < synctime && synctime > 0) {
                        if (m_logger.isLoggable(Level.INFO))
                            m_logger.info("Call import skipped by timestamp (last sync time: " + new Date(synctime).toString() + ", call time: " + calltime.toString() + ") from FRITZ!Box.");
                        continue;
                    }
                    if (calltime != null && synctime < 0) {
                        if (oldestCallTime == -1)
                            oldestCallTime = calltime.getTime();
                        if (oldestCallTime > calltime.getTime())
                            oldestCallTime = calltime.getTime();
                        if (m_logger.isLoggable(Level.INFO))
                            m_logger.info("Set oldest call time to: " + new Date(oldestCallTime).toString());
                    }
                    m_prefilteredList.add(call);
                }
            }
            if (m_prefilteredList.size() > 0) {
                if (progressMonitor != null)
                    progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "identifyprogress", "label", getLanguage()));
                try {
                    Thread.sleep((progressMonitor != null ? 1000 : 100));
                } catch (InterruptedException e1) {
                    m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                }
                for (int i = 0, j = m_prefilteredList.size(); i < j; i++) {
                    c = ((FritzBoxCallCsv) m_prefilteredList.get(i)).toCall();
                    if (c != null) {
                        if (getRuntime().getMsnManager().isMsnMonitored(c.getMSN())) {
                            if (progressMonitor != null) {
                                progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "processing", "label", getLanguage()) + Formatter.getInstance(this.getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNUMBER, c));
                                try {
                                    Thread.sleep(75);
                                } catch (InterruptedException e1) {
                                    m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                                }
                            }
                            if (!m_callList.contains(c)) {
                                if (m_logger.isLoggable(Level.INFO))
                                    m_logger.info("Adding call imported from FRITZ!Box: " + c.toString());
                                m_callList.add(c);
                            } else {
                                if (m_logger.isLoggable(Level.WARNING))
                                    m_logger.warning("Adding duplicated call imported from FRITZ!Box: " + c.toString());
                                c.setUUID(c.getUUID() + "-1");
                                ICip cip = c.getCIP();
                                // just a dirty hack
                                cip.setCIP("4");
                                c.setCIP(cip);
                                if (!m_callList.contains(c))
                                    m_callList.add(c);
                                else {
                                    c.setUUID(c.getUUID() + "-1");
                                    if (!m_callList.contains(c))
                                        m_callList.add(c);
                                }
                            }
                        }
                    }
                }
            }
            if (m_callList != null && m_callList.size() > 0) {
                if (progressMonitor != null)
                    progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "geocodeprogress", "label", getLanguage()));
                try {
                    Thread.sleep((progressMonitor != null ? 1000 : 100));
                } catch (InterruptedException e1) {
                    m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                }
                boolean synctam = SynchronizerService.this.m_configuration.getProperty(CFG_SYNCTAM, "false").equalsIgnoreCase("true");
                if (synctam) {
                    if (m_logger.isLoggable(Level.INFO))
                        m_logger.info("Sync TAM recordings: " + Boolean.toString(synctam));
                    if (progressMonitor != null)
                        progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "tamprogress", "label", getLanguage()));
                    this.m_tamMap.putAll(fwm.getTamMessages(synctime));
                    try {
                        Thread.sleep((progressMonitor != null ? 1000 : 100));
                    } catch (InterruptedException e1) {
                        m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                    }
                }
                if (m_logger.isLoggable(Level.INFO))
                    m_logger.info("Processing modifier services on call list: " + getRuntime().getServiceFactory().getModifierServices());
                processModifierServices(m_callList, progressMonitor);
                if (progressMonitor != null)
                    progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "synchprogress", "label", getLanguage()));
                try {
                    Thread.sleep((progressMonitor != null ? 1000 : 100));
                } catch (InterruptedException e1) {
                    m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                }
                String repository = getRuntime().getConfigManagerFactory().getConfigManager().getProperty(Journal.NAMESPACE, "repository");
                ICallManager cm = getRuntime().getCallManagerFactory().getCallManager(repository);
                if (cm != null && cm.isActive() && cm.isSupported(IWriteCallRepository.class)) {
                    ICall ca = null;
                    boolean syncclean = SynchronizerService.this.m_configuration.getProperty(CFG_SYNCCLEAN, "false").equalsIgnoreCase("true");
                    if (synctime < 0) {
                        if (m_logger.isLoggable(Level.INFO))
                            m_logger.info("Set syntime to oldest call time to eliminate duplicates.");
                        synctime = oldestCallTime;
                    }
                    if (syncclean && synctime > 0 && cm.isSupported(IReadCallRepository.class) && cm.isSupported(IWriteCallRepository.class)) {
                        if (m_logger.isLoggable(Level.INFO))
                            m_logger.info("Remove duplicated entries (sync clean) option enabled.");
                        if (progressMonitor != null)
                            progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "syncclean", "label", getLanguage()));
                        try {
                            Thread.sleep((progressMonitor != null ? 500 : 100));
                        } catch (InterruptedException e1) {
                            m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                        }
                        IFilter syncFilter = new DateFilter(new Date(System.currentTimeMillis()), new Date(synctime));
                        ICallList cl = ((IReadCallRepository) cm).getCalls(syncFilter);
                        if (cl.size() > 0) {
                            // 2009/03/18: added backup of cleaned calls
                            IImExporter exp = ImExportFactory.getInstance().getExporter("DatFileCallExporter");
                            if (exp != null & exp instanceof ICallExporter) {
                                if (m_logger.isLoggable(Level.INFO))
                                    m_logger.info("Creating backup of cleaned call list...");
                                File backupdir = new File(PathResolver.getInstance(getRuntime()).getDataDirectory(), "fritzbox-sync-clean-backup");
                                if (!backupdir.exists()) {
                                    backupdir.mkdirs();
                                }
                                File backupfile = new File(backupdir, Long.toString(synctime) + ".dat");
                                ((ICallExporter) exp).setFilename(backupfile.getAbsolutePath());
                                ((ICallExporter) exp).setCallList(cl);
                                if (((ICallExporter) exp).doExport()) {
                                    if (m_logger.isLoggable(Level.INFO))
                                        m_logger.info("Backup of cleaned call list successfully finished: " + backupfile.getAbsolutePath());
                                } else {
                                    if (m_logger.isLoggable(Level.WARNING))
                                        m_logger.warning("Backup of cleaned call list failed: " + backupdir.getAbsolutePath());
                                }
                            }
                            ((IWriteCallRepository) cm).removeCalls(createRedundancyList(m_callList, synctime));
                            try {
                                Thread.sleep(500);
                            } catch (InterruptedException e) {
                            }
                        }
                    }
                    for (int i = 0, j = m_callList.size(); i < j; i++) {
                        ca = m_callList.get(i);
                        try {
                            ((IWriteCallRepository) cm).setCall(ca);
                            if (progressMonitor != null) {
                                progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "processing2", "label", getLanguage()) + Formatter.getInstance(this.getRuntime()).parse(IJAMConst.GLOBAL_VARIABLE_CALLERNAME, ca));
                                try {
                                    Thread.sleep(50);
                                } catch (InterruptedException e1) {
                                    m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                                }
                            }
                            if (m_logger.isLoggable(Level.INFO))
                                m_logger.info("Call imported to repository: " + ca.toString());
                        } catch (Exception e) {
                            if (m_logger.isLoggable(Level.WARNING))
                                m_logger.warning("Call already in repository (skipped): " + ca.toString());
                        }
                    }
                    // added 2009/01/08: force refresh of journal, if opened
                    IEventBroker evtBroker = getRuntime().getEventBroker();
                    evtBroker.register(this);
                    evtBroker.send(this, evtBroker.createEvent(IEventConst.EVENT_TYPE_CALL_MANAGER_UPDATED));
                    evtBroker.unregister(this);
                    if (m_logger.isLoggable(Level.INFO))
                        m_logger.info("EventBroker notification sent: EVENT_TYPE_CALL_MANAGER_UPDATED");
                }
                boolean syncDelete = (m_configuration.getProperty(FritzBoxConst.CFG_SYNCDELETE, "false").equalsIgnoreCase("true") ? true : false);
                if (syncDelete) {
                    if (m_logger.isLoggable(Level.INFO))
                        m_logger.info("Delete after sync (sync delete) option enabled.");
                    if (progressMonitor != null)
                        progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "deleteprogress", "label", getLanguage()));
                    fwm.deleteCallList();
                }
                // added 2009/01/07: send mail notification after sync with fritzbox
                boolean syncNotify = (SynchronizerService.this.m_configuration.getProperty(FritzBoxConst.CFG_SYNC_NOTIFICATION, "false").equalsIgnoreCase("true") ? true : false);
                if (syncNotify) {
                    if (m_logger.isLoggable(Level.INFO))
                        m_logger.info("Send notification after sync (sync notification) option enabled.");
                    ICall ca = null;
                    if (progressMonitor != null)
                        progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "sendnotificationprogress", "label", getLanguage()));
                    for (int i = 0, j = m_callList.size(); i < j; i++) {
                        ca = m_callList.get(i);
                        sendMailNotification(ca);
                    }
                }
            }
            String text = getI18nManager().getString(getNamespace(), "finished", "label", getLanguage());
            if (m_callList.size() == 0)
                text = getI18nManager().getString(getNamespace(), "finished0", "label", getLanguage());
            if (m_callList.size() == 1)
                text = getI18nManager().getString(getNamespace(), "finished1", "label", getLanguage());
            if (progressMonitor != null)
                progressMonitor.setTaskName(StringUtils.replaceString(text, "{%1}", Integer.toString(m_callList.size())));
            if (m_callList.size() > 0)
                PropagationFactory.getInstance().fire(new Message(Message.INFO, getI18nManager().getString("monitor.FritzBoxMonitor", "title", "label", getLanguage()), new Exception(StringUtils.replaceString(text, "{%1}", Integer.toString(m_callList.size())))), "Tray");
            SynchronizerService.this.m_configuration.setProperty(CFG_SYNCTIME, Long.toString(System.currentTimeMillis()));
            getRuntime().getConfigManagerFactory().getConfigManager().setProperties(NAMESPACE, SynchronizerService.this.m_configuration);
            getRuntime().getConfigManagerFactory().getConfigManager().saveConfiguration();
            if (progressMonitor != null)
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    m_logger.log(Level.SEVERE, e1.getMessage(), e1);
                }
        } else {
            // no results from FB list
            if (progressMonitor != null)
                progressMonitor.setTaskName(getI18nManager().getString(getNamespace(), "noresults", "label", getLanguage()));
            try {
                Thread.sleep((progressMonitor != null ? 1500 : 100));
            } catch (InterruptedException e1) {
                m_logger.log(Level.SEVERE, e1.getMessage(), e1);
            }
        }
    } catch (IOException e) {
        m_logger.warning(e.toString());
        PropagationFactory.getInstance().fire(new Message(Message.ERROR, getNamespace(), "failedrefresh", e));
    } catch (FritzBoxLoginException e) {
        m_logger.warning(e.toString());
    } catch (GetCallListException e) {
        m_logger.warning(e.toString());
        PropagationFactory.getInstance().fire(new Message(Message.ERROR, getNamespace(), "failedrefresh", e));
    } catch (DeleteCallListException e) {
        m_logger.warning(e.toString());
        PropagationFactory.getInstance().fire(new Message(Message.ERROR, getNamespace(), "failedrefresh", e));
    } catch (CloneNotSupportedException e) {
        m_logger.warning(e.toString());
    } finally {
        if (progressMonitor != null)
            progressMonitor.done();
        this.m_activeSync = false;
    }
    if (m_logger.isLoggable(Level.INFO))
        m_logger.info("--> Finished Synchronizing (" + (progressMonitor == null ? "w/o progress monitor" : "with progress monitor") + ") in " + ((System.currentTimeMillis() - start) / 1000) + " sec.");
}
Also used : Message(de.janrufmonitor.exception.Message) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Properties(java.util.Properties) ICallManager(de.janrufmonitor.repository.ICallManager) ICallList(de.janrufmonitor.framework.ICallList) IImExporter(de.janrufmonitor.repository.imexport.IImExporter) ICallList(de.janrufmonitor.framework.ICallList) List(java.util.List) ArrayList(java.util.ArrayList) DateFilter(de.janrufmonitor.repository.filter.DateFilter) IEventBroker(de.janrufmonitor.framework.event.IEventBroker) IReadCallRepository(de.janrufmonitor.repository.types.IReadCallRepository) ICallExporter(de.janrufmonitor.repository.imexport.ICallExporter) FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) ICall(de.janrufmonitor.framework.ICall) ICip(de.janrufmonitor.framework.ICip) GetCallListException(de.janrufmonitor.fritzbox.firmware.exception.GetCallListException) IOException(java.io.IOException) Date(java.util.Date) IWriteCallRepository(de.janrufmonitor.repository.types.IWriteCallRepository) InvocationTargetException(java.lang.reflect.InvocationTargetException) DeleteCallListException(de.janrufmonitor.fritzbox.firmware.exception.DeleteCallListException) GetCallListException(de.janrufmonitor.fritzbox.firmware.exception.GetCallListException) FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) IOException(java.io.IOException) FritzBoxCallCsv(de.janrufmonitor.fritzbox.FritzBoxCallCsv) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) IFilter(de.janrufmonitor.repository.filter.IFilter) File(java.io.File) DeleteCallListException(de.janrufmonitor.fritzbox.firmware.exception.DeleteCallListException)

Example 55 with Message

use of de.janrufmonitor.exception.Message in project janrufmonitor by tbrandt77.

the class DialerDialog method okPressed.

protected void okPressed() {
    if (dialBox != null) {
        String dial = PhonenumberAnalyzer.getInstance(getRuntime()).toCallable(dialBox.getText());
        if (dials != null) {
            int maxnums = Integer.parseInt(this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty(FritzBoxMonitor.NAMESPACE, FritzBoxConst.CFG_LAST_DIALED_NUMBERS));
            if (dials.size() >= maxnums) {
                dials = dials.subList(0, maxnums - 1);
            }
            dials.add(0, dial);
            this.setLast10DialedNumbers(dials);
        }
        // added 2010/03/06: check for dial prefix for outgoing calls
        if (this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty(IJAMConst.GLOBAL_NAMESPACE, IJAMConst.GLOBAL_DIAL_PREFIX).length() > 0) {
            if (this.m_logger.isLoggable(Level.INFO))
                this.m_logger.info("Using dial prefix: " + this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty(IJAMConst.GLOBAL_NAMESPACE, IJAMConst.GLOBAL_DIAL_PREFIX));
            dial = this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty(IJAMConst.GLOBAL_NAMESPACE, IJAMConst.GLOBAL_DIAL_PREFIX).trim() + dial;
        }
        if (dial.trim().length() > 0) {
            if (dialPrefix != null) {
                if (dialPrefix.getText().trim().length() > 0) {
                    dial = dialPrefix.getText().trim() + dial;
                }
            }
            Properties config = this.getRuntime().getConfigManagerFactory().getConfigManager().getProperties(FritzBoxMonitor.NAMESPACE);
            String clickdial = config.getProperty(CFG_CLICKDIAL, "50");
            if (clickDial != null) {
                if (clickDial.getText().trim().length() > 0) {
                    if (clickDial.getText().equalsIgnoreCase("FON 1"))
                        clickdial = "1";
                    if (clickDial.getText().equalsIgnoreCase("FON 2"))
                        clickdial = "2";
                    if (clickDial.getText().equalsIgnoreCase("FON 3"))
                        clickdial = "3";
                    if (clickDial.getText().equalsIgnoreCase("Alle ISDN Ger\u00E4te"))
                        clickdial = "50";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 1"))
                        clickdial = "51";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 2"))
                        clickdial = "52";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 3"))
                        clickdial = "53";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 4"))
                        clickdial = "54";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 5"))
                        clickdial = "55";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 6"))
                        clickdial = "56";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 7"))
                        clickdial = "57";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 8"))
                        clickdial = "58";
                    if (clickDial.getText().equalsIgnoreCase("ISDN 9"))
                        clickdial = "59";
                    if (clickDial.getText().equalsIgnoreCase("DECT 610"))
                        clickdial = "60";
                    if (clickDial.getText().equalsIgnoreCase("DECT 611"))
                        clickdial = "61";
                    if (clickDial.getText().equalsIgnoreCase("DECT 612"))
                        clickdial = "62";
                    if (clickDial.getText().equalsIgnoreCase("DECT 613"))
                        clickdial = "63";
                    if (clickDial.getText().equalsIgnoreCase("DECT 614"))
                        clickdial = "64";
                    if (clickDial.getText().equalsIgnoreCase("DECT 615"))
                        clickdial = "65";
                    this.getRuntime().getConfigManagerFactory().getConfigManager().setProperty(FritzBoxMonitor.NAMESPACE, "lastext", clickDial.getText());
                }
            }
            String text = getI18nManager().getString("ui.jface.application.fritzbox.action.ClickDialAction", "dial", "description", getLanguage());
            text = StringUtils.replaceString(text, "{%1}", dial);
            FirmwareManager fwm = FirmwareManager.getInstance();
            try {
                if (!fwm.isLoggedIn())
                    fwm.login();
                fwm.doCall(dial + "#", clickdial);
                text = getI18nManager().getString("ui.jface.application.fritzbox.action.ClickDialAction", "success", "description", getLanguage());
                PropagationFactory.getInstance().fire(new Message(Message.INFO, getI18nManager().getString("monitor.FritzBoxMonitor", "title", "label", getLanguage()), new Exception(StringUtils.replaceString(text, "{%1}", dial))), "Tray");
            } catch (IOException e) {
                this.m_logger.warning(e.toString());
                PropagationFactory.getInstance().fire(new Message(Message.ERROR, "ui.jface.application.fritzbox.action.ClickDialAction", "faileddial", e));
            } catch (FritzBoxLoginException e) {
                this.m_logger.warning(e.toString());
                PropagationFactory.getInstance().fire(new Message(Message.ERROR, "ui.jface.application.fritzbox.action.ClickDialAction", "faileddial", e));
            } catch (DoCallException e) {
                this.m_logger.warning(e.toString());
                PropagationFactory.getInstance().fire(new Message(Message.ERROR, "ui.jface.application.fritzbox.action.ClickDialAction", "faileddial", e));
            }
        }
    }
    super.okPressed();
}
Also used : DoCallException(de.janrufmonitor.fritzbox.firmware.exception.DoCallException) FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) Message(de.janrufmonitor.exception.Message) FirmwareManager(de.janrufmonitor.fritzbox.firmware.FirmwareManager) IOException(java.io.IOException) Properties(java.util.Properties) DoCallException(de.janrufmonitor.fritzbox.firmware.exception.DoCallException) FritzBoxLoginException(de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException) IOException(java.io.IOException)

Aggregations

Message (de.janrufmonitor.exception.Message)64 List (java.util.List)25 ICallerList (de.janrufmonitor.framework.ICallerList)20 ArrayList (java.util.ArrayList)20 IOException (java.io.IOException)19 Shell (org.eclipse.swt.widgets.Shell)19 ComFailException (com.jacob.com.ComFailException)16 InvocationTargetException (java.lang.reflect.InvocationTargetException)15 Properties (java.util.Properties)15 ZipArchiveException (de.janrufmonitor.repository.zip.ZipArchiveException)14 ActiveXComponent (com.jacob.activeX.ActiveXComponent)13 Dispatch (com.jacob.com.Dispatch)13 Variant (com.jacob.com.Variant)13 SQLException (java.sql.SQLException)13 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)12 IRunnableWithProgress (org.eclipse.jface.operation.IRunnableWithProgress)12 IAttribute (de.janrufmonitor.framework.IAttribute)11 FritzBoxLoginException (de.janrufmonitor.fritzbox.firmware.exception.FritzBoxLoginException)11 ProgressMonitorDialog (org.eclipse.jface.dialogs.ProgressMonitorDialog)11 ICaller (de.janrufmonitor.framework.ICaller)9