Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
226 changes: 167 additions & 59 deletions htmlflow-core/src/main/java/htmlflow/HtmlMfeConfig.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,33 @@
package htmlflow;

import org.xmlet.htmlapifaster.MfeConfiguration;

public class HtmlMfeConfig implements MfeConfiguration {

private String mfeUrlResource;
private String mfeName;
private String mfeListeningEventName;
private String mfeTriggersEventName;
private String mfeElementName = "micro-frontend";
private String mfeScriptUrl = null;
private String mfeStylingUrl = null;
private boolean isMfeStreamingData;
import org.xmlet.htmlapifaster.MfeConfigurationBuilder;

public final class HtmlMfeConfig implements MfeConfiguration {

private final String mfeUrlResource;
private final String mfeName;
private final String mfeListeningEventName;
private final String mfeTriggersEventName;
private final String mfeElementName;
private final String mfeScriptUrl;
private final String mfeScriptIntegrity;
private final String mfeStylingUrl;
private final String mfeSharedStylingUrl;
private final boolean isMfeStreamingData;

private HtmlMfeConfig(Builder builder) {
this.mfeUrlResource = builder.mfeUrlResource;
this.mfeName = builder.mfeName;
this.mfeListeningEventName = builder.mfeListeningEventName;
this.mfeTriggersEventName = builder.mfeTriggersEventName;
this.mfeElementName = builder.mfeElementName;
this.mfeScriptUrl = builder.mfeScriptUrl;
this.mfeStylingUrl = builder.mfeStylingUrl;
this.mfeSharedStylingUrl = builder.mfeSharedStylingUrl;
this.mfeScriptIntegrity = builder.mfeScriptIntegrity;
this.isMfeStreamingData = builder.isMfeStreamingData;
}

@Override
public String getMfeUrlResource() {
Expand Down Expand Up @@ -49,59 +65,151 @@ public String getMfeStylingUrl() {
}

@Override
public boolean isMfeStreamingData() {
return this.isMfeStreamingData;
}

@Override
public MfeConfiguration setMfeStreamingData(boolean mfeStreamingData) {
this.isMfeStreamingData = mfeStreamingData;
return this;
}

@Override
public MfeConfiguration setMfeUrlResource(String mfeUrlResource) {
this.mfeUrlResource = mfeUrlResource;
return this;
public String getMfeSharedStylingUrl() {
return mfeSharedStylingUrl;
}

@Override
public MfeConfiguration setMfeName(String mfeName) {
this.mfeName = mfeName;
return this;
public String getMfeScriptIntegrity() {
return mfeScriptIntegrity;
}

@Override
public MfeConfiguration setMfeListeningEventName(
String mfeListeningEventName
) {
this.mfeListeningEventName = mfeListeningEventName;
return this;
}

@Override
public MfeConfiguration setMfeTriggersEventName(
String mfeTriggersEventName
) {
this.mfeTriggersEventName = mfeTriggersEventName;
return this;
}

@Override
public MfeConfiguration setMfeElementName(String mfeElementName) {
this.mfeElementName = mfeElementName;
return this;
}

@Override
public MfeConfiguration setMfeScriptUrl(String mfeScriptUrl) {
this.mfeScriptUrl = mfeScriptUrl;
return this;
}

@Override
public MfeConfiguration setMfeStylingUrl(String mfeStylingUrl) {
this.mfeStylingUrl = mfeStylingUrl;
return this;
public boolean isMfeStreamingData() {
return isMfeStreamingData;
}

public static class Builder implements MfeConfigurationBuilder {

private String mfeUrlResource;
private String mfeName;
private String mfeListeningEventName;
private String mfeTriggersEventName;
private String mfeElementName = "micro-frontend";
private String mfeScriptUrl;
private String mfeScriptIntegrity;
private String mfeStylingUrl;
private String mfeSharedStylingUrl;
private boolean isMfeStreamingData;

@Override
public Builder setMfeUrlResource(String s) {
this.mfeUrlResource = s;
return this;
}

@Override
public Builder setMfeName(String s) {
this.mfeName = s;
return this;
}

@Override
public Builder setMfeListeningEventName(String s) {
this.mfeListeningEventName = s;
return this;
}

@Override
public Builder setMfeTriggersEventName(String s) {
this.mfeTriggersEventName = s;
return this;
}

@Override
public Builder setMfeElementName(String s) {
this.mfeElementName = s;
return this;
}

@Override
public Builder setMfeScriptUrl(String s) {
this.mfeScriptUrl = s;
return this;
}

@Override
public Builder setMfeStylingUrl(String s) {
this.mfeStylingUrl = s;
return this;
}

@Override
public Builder setMfeSharedStylingUrl(String s) {
this.mfeSharedStylingUrl = s;
return this;
}

@Override
public Builder setMfeScriptIntegrity(String s) {
this.mfeScriptIntegrity = s;
return this;
}

@Override
public Builder setMfeStreamingData(boolean s) {
this.isMfeStreamingData = s;
return this;
}

@Override
public String getMfeUrlResource() {
return mfeUrlResource;
}

@Override
public String getMfeName() {
return mfeName;
}

@Override
public String getMfeElementName() {
return mfeElementName;
}

@Override
public String getMfeListeningEventName() {
return mfeListeningEventName;
}

@Override
public String getMfeTriggerEventName() {
return mfeTriggersEventName;
}

@Override
public String getMfeScriptUrl() {
return mfeScriptUrl;
}

@Override
public String getMfeStylingUrl() {
return mfeStylingUrl;
}

@Override
public String getMfeSharedStylingUrl() {
return mfeSharedStylingUrl;
}

@Override
public String getMfeScriptIntegrity() {
return mfeScriptIntegrity;
}

@Override
public boolean isMfeStreamingData() {
return isMfeStreamingData;
}

public HtmlMfeConfig build() {
if (mfeUrlResource == null || mfeUrlResource.isBlank()) {
throw new IllegalStateException("mfeUrlResource is required");
}
if (mfeName == null || mfeName.isBlank()) {
throw new IllegalStateException("mfeName is required");
}
return new HtmlMfeConfig(this);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import org.xmlet.htmlapifaster.Element;
import org.xmlet.htmlapifaster.MfeConfiguration;
import org.xmlet.htmlapifaster.MfeConfigurationBuilder;
import org.xmlet.htmlapifaster.async.AwaitConsumer;

/**
Expand Down Expand Up @@ -61,7 +61,7 @@ public final <E extends Element, U> void visitDynamic(
@Override
public final <E extends Element> void visitMfe(
E e,
Consumer<MfeConfiguration> mfeConfiguration
Consumer<MfeConfigurationBuilder> mfeConfiguration
) {
throw new IllegalStateException(
"Wrong use of mfe() in a static view! Use HtmlMfe class to create micro frontends."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import org.xmlet.htmlapifaster.Element;
import org.xmlet.htmlapifaster.MfeConfiguration;
import org.xmlet.htmlapifaster.MfeConfigurationBuilder;
import org.xmlet.htmlapifaster.async.AwaitConsumer;

/**
Expand Down Expand Up @@ -90,7 +90,7 @@ public final <E extends Element, U> void visitDynamic(
@Override
public final <E extends Element> void visitMfe(
E e,
Consumer<MfeConfiguration> mfeConfiguration
Consumer<MfeConfigurationBuilder> mfeConfiguration
) {
throw new IllegalStateException(
"Wrong use of mfe in a HtmlView! Use HtmlMfe class instead."
Expand Down
Loading
Loading