Skip to content

Commit

Permalink
schrodinger initialization cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Jan 17, 2018
1 parent 05d3636 commit ef4e57d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 35 deletions.
Expand Up @@ -19,7 +19,6 @@
import com.evolveum.midpoint.web.application.AsyncWebProcessManager;
import com.evolveum.midpoint.web.application.AsyncWebProcessManagerImpl;
import com.evolveum.midpoint.web.security.MidPointApplication;
import com.evolveum.midpoint.web.util.SchrodingerComponentInitListener;
import com.evolveum.midpoint.web.util.validation.MidpointFormValidatorRegistry;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand All @@ -44,9 +43,4 @@ public MidpointFormValidatorRegistry midpointFormValidatorRegistry() {
public AsyncWebProcessManager asyncWebProcessManager() {
return new AsyncWebProcessManagerImpl();
}

@Bean
public SchrodingerComponentInitListener schrodingerComponentInitListener() {
return new SchrodingerComponentInitListener();
}
}
Expand Up @@ -81,6 +81,7 @@
import org.apache.wicket.util.lang.Bytes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
Expand All @@ -100,6 +101,8 @@
*/
public class MidPointApplication extends AuthenticatedWebApplication {

public static final String SYSTEM_PROPERTY_SCHRODINGER = "midpoint.schrodinger";

/**
* Max. photo size for user/jpegPhoto
*/
Expand Down Expand Up @@ -189,8 +192,6 @@ public class MidPointApplication extends AuthenticatedWebApplication {
transient AsyncWebProcessManager asyncWebProcessManager;
@Autowired
transient ApplicationContext applicationContext;
@Autowired
transient SchrodingerComponentInitListener schrodingerComponentInitListener;

private WebApplicationConfiguration webApplicationConfiguration;

Expand Down Expand Up @@ -276,7 +277,19 @@ public void updateAjaxAttributes(AbstractDefaultAjaxBehavior behavior, AjaxReque
new DescriptorLoader().loadData(this);

// for schrodinger selenide library
getComponentInitializationListeners().add(schrodingerComponentInitListener);
initializeSchrodinger();
}

private void initializeSchrodinger() {
Environment environment = applicationContext.getEnvironment();

String value = environment.getProperty(SYSTEM_PROPERTY_SCHRODINGER);
Boolean enabled = Boolean.parseBoolean(value);

if (enabled) {
LOGGER.info("Schrodinger plugin enabled");
getComponentInitializationListeners().add(new SchrodingerComponentInitListener());
}
}

private boolean isPostMethodTypeBehavior(AbstractDefaultAjaxBehavior behavior, AjaxRequestAttributes attributes) {
Expand Down
Expand Up @@ -30,50 +30,30 @@
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;

import javax.annotation.PostConstruct;
import javax.xml.namespace.QName;

/**
* Created by Viliam Repan (lazyman).
*/
public class SchrodingerComponentInitListener implements IComponentInitializationListener {

private static final Trace LOG = TraceManager.getTrace(SchrodingerComponentInitListener.class);

private static final String SYSTEM_PROPERTY_SELENIUM = "midpoint.selenium";
private static final Trace LOGGER = TraceManager.getTrace(SchrodingerComponentInitListener.class);

private static final String ATTR_DATA_PREFIX = "data-s-";

private static final String ATTR_ID = "id";
private static final String ATTR_RESOURCE_KEY = "resource-key";
private static final String ATTR_QNAME = "qname";

@Autowired
private Environment environment;

private boolean enabled;

@PostConstruct
public void init() {
String enabled = environment.getProperty(SYSTEM_PROPERTY_SELENIUM);
this.enabled = Boolean.parseBoolean(enabled);

LOG.info("Schrodinger plugin enabled={}", this.enabled);
}

@Override
public void onInitialize(Component component) {
if (!enabled) {
return;
try {
handleId(component);
handleLocalization(component);
} catch (Exception ex) {
LOGGER.error("Schrodinger component initializer failed", ex);
}

handleId(component);
handleLocalization(component);
}

private void handleId(Component component) {
Expand Down

0 comments on commit ef4e57d

Please sign in to comment.