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

HAL-1137: messaging - enable directory path configuration #261

Merged
merged 1 commit into from
Jul 11, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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 @@ -61,6 +62,7 @@

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 @@ -74,7 +76,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 @@ -92,7 +94,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 @@ -219,7 +221,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 @@ -273,12 +279,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,12 +27,14 @@
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.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;

public class ProviderView implements MessagingAddress {
Expand Down Expand Up @@ -72,10 +74,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 @@ -87,6 +98,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 @@ -136,6 +148,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 @@ -145,7 +189,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 @@ -156,5 +204,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) {
}
};
}
}