Examples of FeatureManager


Examples of org.togglz.core.manager.FeatureManager

     *
     * @return The {@link FeatureManager} for the application, never <code>null</code>
     */
    public static synchronized FeatureManager getFeatureManager() {

        FeatureManager manager = getFeatureManagerOrNull();

        if (manager != null) {
            return manager;
        }

View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

        // the classloader used for cache lookups
        ClassLoader classLoader = getContextClassLoader();

        // first try to lookup from the cache
        FeatureManager featureManager = cache.get(classLoader);
        if (featureManager != null) {
            return featureManager;
        }

        if (log.isDebugEnabled()) {
            log.debug("No cached FeatureManager for class loader: " + classLoader);
        }

        // build a sorted list of all SPI implementations
        Iterator<FeatureManagerProvider> providerIterator = ServiceLoader.load(FeatureManagerProvider.class).iterator();
        List<FeatureManagerProvider> providerList = new ArrayList<FeatureManagerProvider>();
        while (providerIterator.hasNext()) {
            providerList.add(providerIterator.next());
        }
        Collections.sort(providerList, new Weighted.WeightedComparator());

        if (log.isDebugEnabled()) {
            log.debug("Found " + providerList.size() + " FeatureManagerProvider implementations...");
        }

        // try providers one by one to find a FeatureManager
        for (FeatureManagerProvider provider : providerList) {

            // call the SPI
            featureManager = provider.getFeatureManager();

            if (log.isDebugEnabled()) {
                if (featureManager != null) {
                    log.debug("Provider " + provider.getClass().getName() + " returned FeatureManager: "
                        + featureManager.getName());
                } else {
                    log.debug("No FeatureManager provided by " + provider.getClass().getName());
                }
            }
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

    }

    @Test
    public void testGuiceIntegration() throws IOException {

        FeatureManager featureManager = FeatureContext.getFeatureManagerOrNull();

        assertThat(featureManager).isNotNull();
        assertThat(featureManager.getFeatures())
            .containsExactly(GuiceFeatures.FEATURE1, GuiceFeatures.FEATURE2);

    }
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

    }

    @Override
    public void process(RequestEvent event) throws IOException {

        FeatureManager featureManager = event.getFeatureManager();

        List<ActivationStrategy> strategies = featureManager.getActivationStrategies();

        IndexPageTabView tabView = new IndexPageTabView(strategies);

        for (Feature feature : featureManager.getFeatures()) {
            FeatureMetaData metadata = featureManager.getMetaData(feature);
            FeatureState featureState = featureManager.getFeatureState(feature);
            tabView.add(feature, metadata, featureState);
        }

        Map<String, Object> model = new HashMap<String, Object>();
        model.put("tabView", tabView);
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

    }

    @Test
    public void testGetFeatureStateFromJDBCRepository() throws IOException {

        FeatureManager featureManager = FeatureContext.getFeatureManager();

        assertNotNull(featureManager);
        assertNotNull(dataSource);

        FeatureState stateNoEntry = featureManager.getFeatureState(JDBCFeatures.F1);
        assertEquals(false, stateNoEntry.isEnabled());
        assertEquals(null, stateNoEntry.getStrategyId());
        assertEquals(0, stateNoEntry.getParameterNames().size());

        int inserted = executeUpdate("INSERT INTO MYTABLE " +
            "(FEATURE_NAME, FEATURE_ENABLED, STRATEGY_ID, STRATEGY_PARAMS) " +
            "VALUES ('F1', 1, 'SomeStrategy', 'param=foobar')");
        assertEquals(1, inserted);

        FeatureState stateEnabled = featureManager.getFeatureState(JDBCFeatures.F1);
        assertEquals(true, stateEnabled.isEnabled());
        assertEquals("SomeStrategy", stateEnabled.getStrategyId());
        assertEquals(1, stateEnabled.getParameterNames().size());
        assertEquals("foobar", stateEnabled.getParameter("param"));

        executeUpdate("UPDATE MYTABLE " +
            "SET FEATURE_ENABLED = 0, STRATEGY_ID = NULL, STRATEGY_PARAMS = NULL " +
            "WHERE FEATURE_NAME = 'F1'");

        FeatureState stateDisabled = featureManager.getFeatureState(JDBCFeatures.F1);
        assertEquals(false, stateDisabled.isEnabled());
        assertEquals(null, stateDisabled.getStrategyId());
        assertEquals(0, stateDisabled.getParameterNames().size());

    }
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

    }

    @Test
    public void testSetFeatureStateFromJDBCRepository() throws IOException {

        FeatureManager featureManager = FeatureContext.getFeatureManager();

        assertNotNull(featureManager);
        assertNotNull(dataSource);

        assertEquals(0l, executeQuery("SELECT COUNT(*) FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));

        FeatureState firstState = new FeatureState(JDBCFeatures.F2, true);
        firstState.setStrategyId("someId");
        firstState.setParameter("param", "foo");
        featureManager.setFeatureState(firstState);

        assertEquals(1, executeQuery("SELECT FEATURE_ENABLED FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));
        assertEquals("someId", executeQuery("SELECT STRATEGY_ID FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));
        assertEquals("param=foo", executeQuery("SELECT STRATEGY_PARAMS FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));

        FeatureState secondState = new FeatureState(JDBCFeatures.F2, false);
        secondState.setStrategyId(null);
        featureManager.setFeatureState(secondState);

        assertEquals(0, executeQuery("SELECT FEATURE_ENABLED FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));
        assertEquals(null, executeQuery("SELECT STRATEGY_ID FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));
        assertEquals(null, executeQuery("SELECT STRATEGY_PARAMS FROM MYTABLE WHERE FEATURE_NAME = 'F2'"));

View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

    }

    @Override
    public void process(RequestEvent event) throws IOException {

        FeatureManager featureManager = event.getFeatureManager();
        HttpServletRequest request = event.getRequest();
        HttpServletResponse response = event.getResponse();

        // identify the feature
        Feature feature = null;
        String featureAsString = request.getParameter("f");
        for (Feature f : featureManager.getFeatures()) {
            if (f.name().equals(featureAsString)) {
                feature = f;
            }
        }
        if (feature == null) {
            response.sendError(403);
            return;
        }

        FeatureMetaData metadata = featureManager.getMetaData(feature);
        List<ActivationStrategy> impls = featureManager.getActivationStrategies();
        FeatureModel featureModel = new FeatureModel(feature, metadata, impls);

        // GET requests for this feature
        if ("GET".equals(request.getMethod())) {

            FeatureState state = featureManager.getFeatureState(feature);
            featureModel.populateFromFeatureState(state);

            renderEditPage(event, featureModel);

        }

        // POST requests for this feature
        if ("POST".equals(request.getMethod())) {

            featureModel.restoreFromRequest(request);

            // no validation errors
            if (featureModel.isValid()) {

                FeatureState state = featureModel.toFeatureState();
                featureManager.setFeatureState(state);
                response.sendRedirect("index");

            }

            // got validation errors
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

        Boolean bootstrap = config.isPerformBootstrap();

        // try to autodetect whether bootstrapping is required
        if (bootstrap == null) {

            FeatureManager existingFeatureManager = FeatureContext.getFeatureManagerOrNull();

            if (existingFeatureManager == null) {
                log.debug("Could not find any existing FeatureManager");
                bootstrap = true;
            } else {
                log.debug("Found existing FeatureManager: " + existingFeatureManager.getName());
                bootstrap = false;
            }

        }
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

public class FeatureMapTest {

    @Test
    public void canBootstrapViaConstructor() {
        FeatureManager featureManager = mock(FeatureManager.class);
        Set<Feature> features = new HashSet<Feature>();
        String name1 = "Feature 1";
        String name2 = "Feature 2";
        Feature feature1 = mock(Feature.class, name1);
        Feature feature2 = mock(Feature.class, name2);
        features.add(feature1);
        features.add(feature2);
        when(featureManager.getFeatures()).thenReturn(features);
        when(feature1.name()).thenReturn(name1);
        when(feature2.name()).thenReturn(name2);
        when(featureManager.isActive(featureNamed(name1))).thenReturn(true);
        when(featureManager.isActive(featureNamed(name2))).thenReturn(false);
        Map<Object, Boolean> map = new FeatureMap(featureManager);
        assertThat(map.size(), equalTo(2));
        assertThat(map.isEmpty(), is(false));
        assertThat(map.get(name1), equalTo(true));
        assertThat(map.get(name2), equalTo(false));
View Full Code Here

Examples of org.togglz.core.manager.FeatureManager

        List<Feature> features = Arrays.<Feature>asList(
            new NamedFeature("f1"),
            new NamedFeature("f2")
            );

        FeatureManager featureManager = mock(FeatureManager.class);
        when(featureManager.getFeatures()).thenReturn(new HashSet<Feature>(features));

        FeatureMap map = new FeatureMap(featureManager);

        assertThat(map).hasSize(2);
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.