Package org.knowhowlab.osgi.monitoradmin.util

Examples of org.knowhowlab.osgi.monitoradmin.util.StatusVariablePath


* @author dmytro.pishchukhin
*/
public class StatusVariablePathTest {
    @Test
    public void testParse() {
        StatusVariablePath path = new StatusVariablePath("aaa/aaa");
        Assert.assertEquals("aaa", path.getMonitorableId());
        Assert.assertEquals("aaa", path.getStatusVariableId());

        try {
            new StatusVariablePath("aaa/aaa/aaa");
            Assert.fail();
        } catch (IllegalArgumentException e) {
        }

        try {
            new StatusVariablePath("/aaa");
            Assert.fail();
        } catch (IllegalArgumentException e) {
        }

        try {
            new StatusVariablePath("aaa.aaa./aaa");
            Assert.fail();
        } catch (IllegalArgumentException e) {
        }
    }
View Full Code Here


     */
    public StatusVariable getStatusVariable(String path)
            throws IllegalArgumentException, SecurityException {
        logVisitor.debug("ENTRY: getStatusVariable: " + path, null);
        try {
            StatusVariablePath statusVariablePath = new StatusVariablePath(path);
            ServiceReference serviceReference = common.findMonitorableReferenceById(statusVariablePath.getMonitorableId());

            checkPermissions(statusVariablePath, serviceReference, MonitorPermission.PUBLISH, MonitorPermission.READ);

            return common.getStatusVariable(serviceReference, statusVariablePath.getStatusVariableId());
        } finally {
            logVisitor.debug("EXIT: getStatusVariable: " + path, null);
        }
    }
View Full Code Here

     */
    public String getDescription(String path)
            throws IllegalArgumentException, SecurityException {
        logVisitor.debug("ENTRY: getDescription: " + path, null);
        try {
            StatusVariablePath statusVariablePath = new StatusVariablePath(path);
            ServiceReference serviceReference = common.findMonitorableReferenceById(statusVariablePath.getMonitorableId());

            checkPermissions(statusVariablePath, serviceReference, MonitorPermission.PUBLISH, MonitorPermission.READ);

            return common.getDescription(serviceReference, statusVariablePath.getStatusVariableId());
        } finally {
            logVisitor.debug("EXIT: getDescription: " + path, null);
        }
    }
View Full Code Here

     */
    public boolean resetStatusVariable(String path)
            throws IllegalArgumentException, SecurityException {
        logVisitor.debug("ENTRY: resetStatusVariable: " + path, null);
        try {
            StatusVariablePath statusVariablePath = new StatusVariablePath(path);
            ServiceReference serviceReference = common.findMonitorableReferenceById(statusVariablePath.getMonitorableId());

            checkPermissions(statusVariablePath, serviceReference, MonitorPermission.PUBLISH, MonitorPermission.RESET);

            return common.resetStatusVariable(serviceReference, statusVariablePath.getStatusVariableId());
        } finally {
            logVisitor.debug("EXIT: resetStatusVariable: " + path, null);
        }
    }
View Full Code Here

            for (ServiceReference monitorableReference : monitorableReferences) {
                String pid = (String) monitorableReference.getProperty(Constants.SERVICE_PID);
                String[] statusVariableNames = common.getStatusVariableNames(pid);
                for (String statusVariableName : statusVariableNames) {
                    if (filter.match(pid, statusVariableName)) {
                        checkPermissions(new StatusVariablePath(pid, statusVariableName), monitorableReference,
                                MonitorPermission.PUBLISH, MonitorPermission.SWITCHEVENTS);
                        paths.add(String.format(MonitorAdminCommon.PATH_PATERN, pid, statusVariableName));
                    }
                }
            }
View Full Code Here

            }
            if (count < 0) {
                throw new IllegalArgumentException("Count is invalid: " + count);
            }
            for (String path : statusVariables) {
                StatusVariablePath statusVariablePath = new StatusVariablePath(path);
                ServiceReference monitorableReference = common.findMonitorableReferenceById(statusVariablePath.getMonitorableId());
                String pid = (String) monitorableReference.getProperty(Constants.SERVICE_PID);

                checkPermissions(new StatusVariablePath(pid, statusVariablePath.getStatusVariableId()), monitorableReference,
                        MonitorPermission.PUBLISH, String.format(STARTJOB_PERMISSION_PATTERN, schedule));
            }
            ScheduledMonitoringJob job = new ScheduledMonitoringJob(common, logVisitor, initiator,
                    statusVariables, schedule, count);
            common.addJob(job);
View Full Code Here

            }
            if (count <= 0) {
                throw new IllegalArgumentException("Count is invalid: " + count);
            }
            for (String path : statusVariables) {
                StatusVariablePath statusVariablePath = new StatusVariablePath(path);
                ServiceReference monitorableReference = common.findMonitorableReferenceById(statusVariablePath.getMonitorableId());
                String pid = (String) monitorableReference.getProperty(Constants.SERVICE_PID);

                if (!common.notifiesOnChange(monitorableReference, statusVariablePath.getStatusVariableId())) {
                    throw new IllegalArgumentException("StatusVariable: " + path + " does not support notifications");
                }

                checkPermissions(new StatusVariablePath(pid, statusVariablePath.getStatusVariableId()), monitorableReference,
                        MonitorPermission.PUBLISH, MonitorPermission.STARTJOB);
            }
            SubscriptionMonitoringJob job = new SubscriptionMonitoringJob(common, logVisitor, initiator, statusVariables, count);

            common.addJob(job);
View Full Code Here

        // validate monitorableId
        findMonitorableById(monitorableId);
        if (statusVariable == null) {
            throw new IllegalArgumentException("StatusVariable is null");
        }
        StatusVariablePath path = new StatusVariablePath(monitorableId, statusVariable.getID());
        if (isEventEnabled(path.getPath())) {
            fireEvent(monitorableId, statusVariable, null);
            logVisitor.info("Fire new SV update Event: " + path.getPath(), null);
        }
        // find jobs that handle this StatusVariable update event
        if (!jobs.isEmpty()) {
            synchronized (jobs) {
                for (AbstractMonitoringJob job : jobs) {
                    if (job.isHandleUpdateEvent(path.getPath())) {
                        job.handleUpdateEvent(monitorableId, statusVariable);
                    }
                }
            }
        }
View Full Code Here

     */
    public StatusVariable getStatusVariable(String path)
            throws IllegalArgumentException {
        logVisitor.debug("ENTRY: getStatusVariable: " + path, null);
        try {
            StatusVariablePath statusVariablePath = new StatusVariablePath(path);
            Monitorable monitorable = findMonitorableById(statusVariablePath.getMonitorableId());

            return monitorable.getStatusVariable(statusVariablePath.getStatusVariableId());
        } finally {
            logVisitor.debug("EXIT: getStatusVariable: " + path, null);
        }
    }
View Full Code Here

        return isRunning() && statusVariablePaths.contains(path);
    }

    @Override
    public void handleUpdateEvent(String monitorableId, StatusVariable statusVariable) {
        StatusVariablePath path = new StatusVariablePath(monitorableId, statusVariable.getID());
        int statusVariableChangesCount = countStatesMap.get(path.getPath());
        if ((statusVariableChangesCount + 1) == count) {
            visitor.fireEvent(monitorableId, statusVariable, getInitiator());
            countStatesMap.put(path.getPath(), 0);
        } else {
            countStatesMap.put(path.getPath(), statusVariableChangesCount + 1);
        }
    }
View Full Code Here

TOP

Related Classes of org.knowhowlab.osgi.monitoradmin.util.StatusVariablePath

Copyright © 2018 www.massapicom. 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.