Search in sources :

Example 31 with SingleConfigCode

use of org.jvnet.hk2.config.SingleConfigCode in project Payara by payara.

the class EJBTimerServiceUpgrade method doUpgrade.

private void doUpgrade(EjbTimerService ts) {
    String value = ts.getMinimumDeliveryIntervalInMillis();
    if (value == null || "7000".equals(value)) {
        value = "" + EjbContainerUtil.MINIMUM_TIMER_DELIVERY_INTERVAL;
    }
    List<Property> properties = ts.getProperty();
    if (properties != null) {
        for (Property p : properties) {
            if (p.getName().equals(EjbContainerUtil.TIMER_SERVICE_UPGRADED)) {
                // Already set
                return;
            }
        }
    }
    try {
        final String minDelivery = value;
        ConfigSupport.apply(new SingleConfigCode<EjbTimerService>() {

            public Object run(EjbTimerService ts) throws PropertyVetoException, TransactionFailure {
                Property prop = ts.createChild(Property.class);
                ts.getProperty().add(prop);
                prop.setName(EjbContainerUtil.TIMER_SERVICE_UPGRADED);
                prop.setValue("false");
                ts.setMinimumDeliveryIntervalInMillis(minDelivery);
                return null;
            }
        }, ts);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : PropertyVetoException(java.beans.PropertyVetoException) TransactionFailure(org.jvnet.hk2.config.TransactionFailure) Property(org.jvnet.hk2.config.types.Property) EjbTimerService(org.glassfish.ejb.config.EjbTimerService) PropertyVetoException(java.beans.PropertyVetoException)

Example 32 with SingleConfigCode

use of org.jvnet.hk2.config.SingleConfigCode in project Payara by payara.

the class PersistentEJBTimerService method isUpgrade.

private static boolean isUpgrade(String resource, EjbTimerService _ejbt, File root) {
    boolean upgrade = false;
    Property prop = null;
    if (_ejbt != null) {
        List<Property> properties = _ejbt.getProperty();
        if (properties != null) {
            for (Property p : properties) {
                if (p.getName().equals(EjbContainerUtil.TIMER_SERVICE_UPGRADED)) {
                    String value = p.getValue();
                    if (value != null && "false".equals(value)) {
                        upgrade = true;
                        prop = p;
                        break;
                    }
                }
            }
        }
    }
    if (logger.isLoggable(Level.FINE)) {
        logger.fine("===> Upgrade? <==");
    }
    if (upgrade) {
        if (logger.isLoggable(Level.FINE)) {
            logger.fine("===> Upgrade! <==");
        }
        boolean success = false;
        try {
            File dir = new File(root, "lib/install/databases/upgrade");
            if (!dir.exists()) {
                logger.log(Level.WARNING, "Cannot upgrade EJBTimerService: " + "required directory is not available");
            } else {
                Java2DBProcessorHelper h = new Java2DBProcessorHelper(TIMER_SERVICE_APP_NAME);
                success = h.executeDDLStatement(dir.getCanonicalPath() + "/ejbtimer_upgrade_", resource);
                ConfigSupport.apply(new SingleConfigCode<Property>() {

                    public Object run(Property p) throws PropertyVetoException, TransactionFailure {
                        p.setValue("true");
                        return null;
                    }
                }, prop);
            }
        } catch (Exception e) {
            logger.log(Level.WARNING, "", e);
        }
        if (!success) {
            logger.log(Level.SEVERE, "Failed to upgrade EJBTimerService: see log for details");
        }
    }
    return upgrade;
}
Also used : Java2DBProcessorHelper(org.glassfish.persistence.common.Java2DBProcessorHelper) PropertyVetoException(java.beans.PropertyVetoException) TransactionFailure(org.jvnet.hk2.config.TransactionFailure) Property(org.jvnet.hk2.config.types.Property) File(java.io.File) PropertyVetoException(java.beans.PropertyVetoException) EJBException(javax.ejb.EJBException) FinderException(javax.ejb.FinderException) CreateException(javax.ejb.CreateException)

Example 33 with SingleConfigCode

use of org.jvnet.hk2.config.SingleConfigCode in project Payara by payara.

the class JDBCResourceManager method create.

public ResourceStatus create(Resources resources, HashMap attributes, final Properties properties, String target) throws Exception {
    setAttributes(attributes, target);
    ResourceStatus validationStatus = isValid(resources, true, target);
    if (validationStatus.getStatus() == ResourceStatus.FAILURE) {
        return validationStatus;
    }
    try {
        ConfigSupport.apply(new SingleConfigCode<Resources>() {

            public Object run(Resources param) throws PropertyVetoException, TransactionFailure {
                return createResource(param, properties);
            }
        }, resources);
        resourceUtil.createResourceRef(jndiName, enabledValueForTarget, target);
    } catch (TransactionFailure tfe) {
        String msg = localStrings.getLocalString("create.jdbc.resource.fail", "JDBC resource {0} create failed ", jndiName) + " " + tfe.getLocalizedMessage();
        ResourceStatus status = new ResourceStatus(ResourceStatus.FAILURE, msg);
        status.setException(tfe);
        return status;
    }
    String msg = localStrings.getLocalString("create.jdbc.resource.success", "JDBC resource {0} created successfully", jndiName);
    return new ResourceStatus(ResourceStatus.SUCCESS, msg);
}
Also used : PropertyVetoException(java.beans.PropertyVetoException) TransactionFailure(org.jvnet.hk2.config.TransactionFailure) ResourceStatus(org.glassfish.resourcebase.resources.api.ResourceStatus) Resources(com.sun.enterprise.config.serverbeans.Resources)

Example 34 with SingleConfigCode

use of org.jvnet.hk2.config.SingleConfigCode in project Payara by payara.

the class JDBCConnectionPoolManager method create.

public ResourceStatus create(Resources resources, HashMap attributes, final Properties properties, String target) throws Exception {
    setAttributes(attributes);
    ResourceStatus validationStatus = isValid(resources);
    if (validationStatus.getStatus() == ResourceStatus.FAILURE) {
        return validationStatus;
    }
    try {
        ConfigSupport.apply(new SingleConfigCode<Resources>() {

            public Object run(Resources param) throws PropertyVetoException, TransactionFailure {
                return createResource(param, properties);
            }
        }, resources);
    } catch (TransactionFailure tfe) {
        String msg = localStrings.getLocalString("create.jdbc.connection.pool.fail", "JDBC connection pool {0} create failed: {1}", jdbcconnectionpoolid, tfe.getMessage());
        return new ResourceStatus(ResourceStatus.FAILURE, msg);
    }
    String msg = localStrings.getLocalString("create.jdbc.connection.pool.success", "JDBC connection pool {0} created successfully", jdbcconnectionpoolid);
    return new ResourceStatus(ResourceStatus.SUCCESS, msg);
}
Also used : PropertyVetoException(java.beans.PropertyVetoException) TransactionFailure(org.jvnet.hk2.config.TransactionFailure) ResourceStatus(org.glassfish.resourcebase.resources.api.ResourceStatus)

Example 35 with SingleConfigCode

use of org.jvnet.hk2.config.SingleConfigCode in project Payara by payara.

the class CreateJdbcResourceTest method tearDown.

@After
public void tearDown() throws TransactionFailure {
    // Delete the created resource
    ConfigSupport.apply(new SingleConfigCode<Resources>() {

        public Object run(Resources param) throws PropertyVetoException, TransactionFailure {
            Resource target = null;
            // and removal runs at the same time.
            for (Resource resource : param.getResources()) {
                if (resource instanceof JdbcResource) {
                    JdbcResource jr = (JdbcResource) resource;
                    if (jr.getJndiName().equals("jdbc/foo") || jr.getJndiName().equals("dupRes") || jr.getJndiName().equals("jdbc/sun") || jr.getJndiName().equals("jdbc/alldefaults") || jr.getJndiName().equals("jdbc/junk")) {
                        target = resource;
                        break;
                    }
                }
            }
            if (target != null) {
                param.getResources().remove(target);
            }
            return null;
        }
    }, resources);
    parameters = new ParameterMap();
}
Also used : PropertyVetoException(java.beans.PropertyVetoException) TransactionFailure(org.jvnet.hk2.config.TransactionFailure) JdbcResource(org.glassfish.jdbc.config.JdbcResource) JdbcResource(org.glassfish.jdbc.config.JdbcResource) ParameterMap(org.glassfish.api.admin.ParameterMap) After(org.junit.After)

Aggregations

TransactionFailure (org.jvnet.hk2.config.TransactionFailure)139 PropertyVetoException (java.beans.PropertyVetoException)117 ActionReport (org.glassfish.api.ActionReport)66 Config (com.sun.enterprise.config.serverbeans.Config)37 Property (org.jvnet.hk2.config.types.Property)28 Resources (com.sun.enterprise.config.serverbeans.Resources)25 List (java.util.List)19 ResourceStatus (org.glassfish.resourcebase.resources.api.ResourceStatus)17 SingleConfigCode (org.jvnet.hk2.config.SingleConfigCode)16 Protocol (org.glassfish.grizzly.config.dom.Protocol)15 Test (org.junit.Test)15 CommandTarget (org.glassfish.config.support.CommandTarget)14 NetworkListener (org.glassfish.grizzly.config.dom.NetworkListener)14 Target (org.glassfish.internal.api.Target)14 NetworkConfig (org.glassfish.grizzly.config.dom.NetworkConfig)12 Protocols (org.glassfish.grizzly.config.dom.Protocols)11 Resource (com.sun.enterprise.config.serverbeans.Resource)9 SecurityService (com.sun.enterprise.config.serverbeans.SecurityService)9 Properties (java.util.Properties)8 HttpService (com.sun.enterprise.config.serverbeans.HttpService)6