class ScriptConfigurationService implements ScriptingService, ServiceListener {

    @Override
    public ScriptConfiguration create(ScriptConfiguration config, Subject subject) throws ScriptException {
        lock.readLock().lock();
        try {
            failIfUuidExists(config.getId());
            failIfNameExists(config.getName());
            final ScriptConfiguration updatedConfig = setMetaData(config, subject);
            save(updatedConfig);
            return updatedConfig;
        } finally {
            lock.readLock().unlock();
        }
    }

    @Inject public  ScriptConfigurationService(Logger logger, String realm, CoreWrapper coreWrapper, ServiceConfigManager scm);

}