Skip to content
This repository has been archived by the owner on Mar 15, 2022. It is now read-only.

Commit

Permalink
Merge pull request #261 from michpetrov/hal1137
Browse files Browse the repository at this point in the history
HAL-1137: messaging - enable directory path configuration
  • Loading branch information
hpehl committed Jul 12, 2016
2 parents ba1ce11 + 879d106 commit 1d46763
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import org.jboss.as.console.client.rbac.SecurityFramework;
import org.jboss.as.console.client.standalone.ServerMgmtApplicationPresenter;
import org.jboss.as.console.client.v3.ResourceDescriptionRegistry;
import org.jboss.as.console.client.v3.dmr.AddressTemplate;
import org.jboss.as.console.client.v3.dmr.Operation;
import org.jboss.as.console.client.v3.dmr.ResourceAddress;
import org.jboss.as.console.client.v3.dmr.ResourceDescription;
Expand All @@ -63,6 +64,7 @@
import static org.jboss.as.console.client.meta.CoreCapabilitiesRegister.SECURITY_DOMAIN;
import static org.jboss.as.console.client.shared.subsys.activemq.MessagingAddress.PROVIDER_ADDRESS;
import static org.jboss.as.console.client.shared.subsys.activemq.MessagingAddress.PROVIDER_TEMPLATE;
import static org.jboss.as.console.client.shared.subsys.activemq.MessagingAddress.PATH_ADDRESS;
import static org.jboss.dmr.client.ModelDescriptionConstants.ADD;
import static org.jboss.dmr.client.ModelDescriptionConstants.ADDRESS;
import static org.jboss.dmr.client.ModelDescriptionConstants.OP;
Expand All @@ -76,7 +78,7 @@ public class ActivemqFinder extends Presenter<ActivemqFinder.MyView, ActivemqFin

@ProxyCodeSplit
@NameToken(NameTokens.ActivemqFinder)
@RequiredResources(resources = {MessagingAddress.ROOT_ADDRESS, PROVIDER_ADDRESS}, recursive = false)
@RequiredResources(resources = {MessagingAddress.ROOT_ADDRESS, PROVIDER_ADDRESS, PATH_ADDRESS}, recursive = false)
public interface MyProxy extends Proxy<ActivemqFinder>, Place {}

public interface MyView extends View {
Expand All @@ -94,7 +96,7 @@ public interface MyView extends View {
private ProviderView providerView;

@Inject
public ActivemqFinder(EventBus eventBus,
public ActivemqFinder(EventBus eventBus,
ActivemqFinder.MyView view,
ActivemqFinder.MyProxy proxy,
DispatchAsync dispatcher,
Expand Down Expand Up @@ -226,7 +228,11 @@ public void onSuccess(List<Property> result) {
}

public void onSaveProvider(Property provider, Map<String, Object> changeset) {
ResourceAddress fqAddress = PROVIDER_TEMPLATE.resolve(statementContext, provider.getName());
onSaveProvider(provider, changeset, PROVIDER_TEMPLATE);
}

public void onSaveProvider(Property provider, Map<String, Object> changeset, AddressTemplate address) {
ResourceAddress fqAddress = address.resolve(statementContext, provider.getName());
ModelNodeAdapter adapter = new ModelNodeAdapter();
ModelNode operation = adapter.fromChangeset(changeset, fqAddress);

Expand Down Expand Up @@ -280,12 +286,12 @@ public void onSuccess(DMRResponse dmrResponse) {

public void onLaunchProviderSettings(Property provider) {
providerDialog = new DefaultWindow(Console.MESSAGES.providerSettings());
providerDialog.setWidth(640);
providerDialog.setWidth(840);
providerDialog.setHeight(480);
providerDialog.trapWidget(providerView.asWidget());
providerDialog.setGlassEnabled(true);
providerDialog.center();

providerView.updateFrom(provider);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public LoadActivemqServersCmd(DispatchAsync dispatcher, StatementContext stateme
@Override
public void execute(final AsyncCallback<List<Property>> callback) {
Operation operation = new Operation.Builder(READ_CHILDREN_RESOURCES_OPERATION,
ROOT_TEMPLATE.resolve(statementContext)).param(CHILD_TYPE, "server").build();
ROOT_TEMPLATE.resolve(statementContext)).param(CHILD_TYPE, "server").param("recursive-depth", 2).build();
dispatcher.execute(new DMRAction(operation), new SimpleCallback<DMRResponse>() {
@Override
public void onSuccess(DMRResponse result) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,7 @@ public interface MessagingAddress {
AddressTemplate JMSBRIDGE_TEMPLATE = AddressTemplate.of(JMSBRIDGE_ADDRESS);

String JMSBRIDGE_ENTITY_ADDRESS = ROOT_ADDRESS + "/jms-bridge=" + JMSBridgeSelectionAwareContext.SELECTED_ENTITY;

String PATH_ADDRESS = ROOT_ADDRESS + "/server={activemq.server}/path=bindings-directory";
AddressTemplate PATH_TEMPLATE = AddressTemplate.of(PATH_ADDRESS);
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@
import com.google.gwt.user.client.ui.Widget;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.layout.OneToOneLayout;
import org.jboss.as.console.client.v3.dmr.AddressTemplate;
import org.jboss.as.console.client.v3.dmr.ResourceDescription;
import org.jboss.as.console.client.v3.widgets.SuggestionResource;
import org.jboss.as.console.mbui.widgets.ModelNodeFormBuilder;
import org.jboss.ballroom.client.rbac.SecurityContext;
import org.jboss.ballroom.client.widgets.forms.FormCallback;
import org.jboss.ballroom.client.widgets.forms.FormItem;
import org.jboss.ballroom.client.widgets.forms.NumberBoxItem;
import org.jboss.dmr.client.ModelNode;
import org.jboss.dmr.client.Property;

import static org.jboss.as.console.client.meta.CoreCapabilitiesRegister.SECURITY_DOMAIN;
Expand Down Expand Up @@ -75,10 +77,19 @@ public class ProviderView implements MessagingAddress {
"create-journal-dir"
};

private final static String[] DIRECTORY = new String[]{
"path",
"relative-to"
};

private final ActivemqFinder presenter;
private ModelNodeFormBuilder.FormAssets commonForm;
private ModelNodeFormBuilder.FormAssets secForm;
private ModelNodeFormBuilder.FormAssets journalForm;
private ModelNodeFormBuilder.FormAssets bindingsDirForm;
private ModelNodeFormBuilder.FormAssets journalDirForm;
private ModelNodeFormBuilder.FormAssets largeMessagesDirForm;
private ModelNodeFormBuilder.FormAssets pagingDirForm;
private Property provider;
private HTML title;

Expand All @@ -90,6 +101,7 @@ public Widget asWidget() {
SecurityContext securityContext = presenter.getSecurityFramework()
.getSecurityContext(presenter.getProxy().getNameToken());
ResourceDescription definition = presenter.getDescriptionRegistry().lookup(PROVIDER_TEMPLATE);
ResourceDescription pathDefinition = presenter.getDescriptionRegistry().lookup(PATH_TEMPLATE);

FormCallback callback = new FormCallback() {
@Override
Expand Down Expand Up @@ -144,6 +156,38 @@ public FormItem create(Property attr) {
.setSecurityContext(securityContext).build();
journalForm.getForm().setToolsCallback(callback);

// bindings directory
bindingsDirForm = new ModelNodeFormBuilder()
.setConfigOnly()
.include(DIRECTORY)
.setResourceDescription(pathDefinition)
.setSecurityContext(securityContext).build();
bindingsDirForm.getForm().setToolsCallback(createPathCallback("bindings-directory"));

// journal directory
journalDirForm = new ModelNodeFormBuilder()
.setConfigOnly()
.include(DIRECTORY)
.setResourceDescription(pathDefinition)
.setSecurityContext(securityContext).build();
journalDirForm.getForm().setToolsCallback(createPathCallback("journal-directory"));

// large messages directory
largeMessagesDirForm = new ModelNodeFormBuilder()
.setConfigOnly()
.include(DIRECTORY)
.setResourceDescription(pathDefinition)
.setSecurityContext(securityContext).build();
largeMessagesDirForm.getForm().setToolsCallback(createPathCallback("large-messages-directory"));

// paging directory
pagingDirForm = new ModelNodeFormBuilder()
.setConfigOnly()
.include(DIRECTORY)
.setResourceDescription(pathDefinition)
.setSecurityContext(securityContext).build();
pagingDirForm.getForm().setToolsCallback(createPathCallback("paging-directory"));

title = new HTML();
title.setStyleName("content-header-label");

Expand All @@ -153,7 +197,11 @@ public FormItem create(Property attr) {
.setDescription(definition.get("description").asString())
.addDetail(Console.CONSTANTS.common_label_attributes(), commonForm.asWidget())
.addDetail("Security", secForm.asWidget())
.addDetail("Journal", journalForm.asWidget());
.addDetail("Journal", journalForm.asWidget())
.addDetail("Bindings Directory", bindingsDirForm.asWidget())
.addDetail("Journal Directory", journalDirForm.asWidget())
.addDetail("Large Messages Directory", largeMessagesDirForm.asWidget())
.addDetail("Paging Directory", pagingDirForm.asWidget());
return layoutBuilder.build();
}

Expand All @@ -164,5 +212,26 @@ public void updateFrom(Property provider) {
commonForm.getForm().edit(provider.getValue());
secForm.getForm().edit(provider.getValue());
journalForm.getForm().edit(provider.getValue());
ModelNode path = provider.getValue().get("path");
if (path.isDefined()) {
bindingsDirForm.getForm().edit(path.get("bindings-directory"));
journalDirForm.getForm().edit(path.get("journal-directory"));
largeMessagesDirForm.getForm().edit(path.get("large-messages-directory"));
pagingDirForm.getForm().edit(path.get("paging-directory"));
}
}

private FormCallback createPathCallback(String directory) {
return new FormCallback() {
@Override
@SuppressWarnings("unchecked")
public void onSave(Map changeset) {
presenter.onSaveProvider(provider, changeset, PROVIDER_TEMPLATE.append("path=" + directory));
}

@Override
public void onCancel(Object entity) {
}
};
}
}

0 comments on commit 1d46763

Please sign in to comment.