Skip to content

Commit

Permalink
deployment info cached in midpoint application (web) + update notific…
Browse files Browse the repository at this point in the history
…ations
  • Loading branch information
1azyman committed Sep 13, 2018
1 parent f8aefdf commit 6c07715
Showing 1 changed file with 34 additions and 0 deletions.
Expand Up @@ -29,6 +29,8 @@
import com.evolveum.midpoint.prism.crypto.Protector;
import com.evolveum.midpoint.prism.match.MatchingRuleRegistry;
import com.evolveum.midpoint.repo.api.RepositoryService;
import com.evolveum.midpoint.repo.api.SystemConfigurationChangeDispatcher;
import com.evolveum.midpoint.repo.api.SystemConfigurationChangeListener;
import com.evolveum.midpoint.repo.common.expression.ExpressionFactory;
import com.evolveum.midpoint.schema.RelationRegistry;
import com.evolveum.midpoint.schema.result.OperationResult;
Expand Down Expand Up @@ -56,6 +58,7 @@
import com.evolveum.midpoint.web.util.MidPointStringResourceLoader;
import com.evolveum.midpoint.web.util.SchrodingerComponentInitListener;
import com.evolveum.midpoint.wf.api.WorkflowManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DeploymentInformationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemConfigurationType;

import org.apache.commons.configuration.Configuration;
Expand Down Expand Up @@ -84,6 +87,7 @@
import org.apache.wicket.settings.ResourceSettings;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import org.apache.wicket.util.lang.Bytes;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.core.env.Environment;
Expand Down Expand Up @@ -194,8 +198,12 @@ public class MidPointApplication extends AuthenticatedWebApplication {
transient AsyncWebProcessManager asyncWebProcessManager;
@Autowired
transient ApplicationContext applicationContext;
@Autowired
transient SystemConfigurationChangeDispatcher systemConfigurationChangeDispatcher;

private WebApplicationConfiguration webApplicationConfiguration;

private DeploymentInformationType deploymentInfo;

public static final String MOUNT_INTERNAL_SERVER_ERROR = "/error";
public static final String MOUNT_UNAUTHORIZED_ERROR = "/error/401";
Expand Down Expand Up @@ -227,6 +235,12 @@ public void init() {

getComponentInstantiationListeners().add(new SpringComponentInjector(this));

systemConfigurationChangeDispatcher.registerListener(new DeploymentInformationChangeListener(this));
SystemConfigurationType config = getSystemConfigurationIfAvailable();
if (config != null) {
deploymentInfo = config.getDeploymentInformation();
}

ResourceSettings resourceSettings = getResourceSettings();
resourceSettings.setParentFolderPlaceholder("$-$");
resourceSettings.setHeaderItemComparator(new PriorityFirstComparator(true));
Expand Down Expand Up @@ -305,6 +319,10 @@ public void updateAjaxAttributes(AbstractDefaultAjaxBehavior behavior, AjaxReque
initializeSchrodinger();
}

public DeploymentInformationType getDeploymentInfo() {
return deploymentInfo;
}

private void initializeSchrodinger() {
if (applicationContext == null) {
return;
Expand Down Expand Up @@ -635,4 +653,20 @@ public ResourceBundle newBundle(String baseName, Locale locale, String format, C
}
}
}

private static class DeploymentInformationChangeListener implements SystemConfigurationChangeListener {

private MidPointApplication application;

public DeploymentInformationChangeListener(MidPointApplication application) {
this.application = application;
}

@Override
public boolean update(@Nullable SystemConfigurationType value) {
application.deploymentInfo = value != null ? value.getDeploymentInformation() : null;

return true;
}
}
}

0 comments on commit 6c07715

Please sign in to comment.