Skip to content

Commit c7b9b94

Browse files
committed
Enables /mvn clean package liberty:run -Pliberty
1 parent 8d6bdfd commit c7b9b94

File tree

13 files changed

+383
-114
lines changed

13 files changed

+383
-114
lines changed

Container/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ Building an image and running a container
44
Development workflow
55
====================
66

7+
Locally without Docker, with Liberty
8+
------------------------------------
9+
10+
```
11+
./mvn clean package liberty:run -Pliberty
12+
```
13+
14+
Open: http://localhost:9080/starter/index.xhtml
15+
16+
Note that the test suite requires Quarkus runtime, so it is
17+
not supported to run tests with Liberty.
18+
719
Locally without Docker, with Quarkus
820
------------------------------------
921

pom.xml

Lines changed: 284 additions & 93 deletions
Large diffs are not rendered by default.

src/main/java/org/eclipse/microprofile/starter/Version.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424

2525
import javax.annotation.PostConstruct;
2626
import javax.enterprise.context.ApplicationScoped;
27+
import java.util.Objects;
2728
import java.util.Scanner;
2829

29-
3030
/**
3131
* @author Michal Karm Babacek <[email protected]>
3232
*/
@@ -38,8 +38,8 @@ public class Version {
3838

3939
@PostConstruct
4040
public void init() {
41-
try (Scanner s = new Scanner(FilesLocator.class.getClassLoader()
42-
.getResourceAsStream("/version.txt")).useDelimiter("\\A")) {
41+
try (Scanner s = new Scanner(Objects.requireNonNull(
42+
FilesLocator.class.getClassLoader().getResourceAsStream("/version.txt"))).useDelimiter("\\A")) {
4343
git = s.hasNext() ? s.next() : "";
4444
} catch (Exception e) {
4545
LOG.error(e.getMessage());

src/main/java/org/eclipse/microprofile/starter/core/files/FileCopyEngine.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222
*/
2323
package org.eclipse.microprofile.starter.core.files;
2424

25-
import com.google.common.io.ByteStreams;
2625
import org.eclipse.microprofile.starter.core.exception.TechnicalException;
2726

2827
import javax.enterprise.context.ApplicationScoped;
2928
import javax.inject.Inject;
3029
import java.io.ByteArrayOutputStream;
3130
import java.io.IOException;
3231
import java.io.InputStream;
32+
import java.util.Objects;
3333
import java.util.Set;
3434

3535
/**
@@ -49,16 +49,15 @@ public byte[] processFile(String file, Set<String> alternatives) {
4949
throw new FileResolutionException(file, alternatives);
5050
}
5151

52-
String sourceFile = "/" + filesLocator.getTemplateFile(fileIndication);
52+
final String sourceFile = "/" + filesLocator.getTemplateFile(fileIndication);
53+
final ByteArrayOutputStream result = new ByteArrayOutputStream();
5354

54-
InputStream resource = FileCopyEngine.class.getResourceAsStream(sourceFile);
55-
ByteArrayOutputStream result = new ByteArrayOutputStream();
56-
57-
try {
58-
ByteStreams.copy(resource, result);
55+
try (InputStream resource = FileCopyEngine.class.getResourceAsStream(sourceFile)) {
56+
Objects.requireNonNull(resource).transferTo(result);
5957
} catch (IOException e) {
6058
throw new TechnicalException(e);
6159
}
60+
6261
return result.toByteArray();
6362
}
6463

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.eclipse.microprofile.starter.log;
2+
3+
import javax.inject.Qualifier;
4+
import java.lang.annotation.ElementType;
5+
import java.lang.annotation.Retention;
6+
import java.lang.annotation.RetentionPolicy;
7+
import java.lang.annotation.Target;
8+
9+
@Qualifier
10+
@Retention(RetentionPolicy.RUNTIME)
11+
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
12+
public @interface AppContext {
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.eclipse.microprofile.starter.log;
2+
3+
import org.eclipse.microprofile.context.ManagedExecutor;
4+
5+
import javax.enterprise.context.ApplicationScoped;
6+
import javax.enterprise.inject.Disposes;
7+
import javax.enterprise.inject.Produces;
8+
9+
@ApplicationScoped
10+
public class ManagedExecutorProducer {
11+
12+
@Produces
13+
@AppContext
14+
ManagedExecutor createExecutor() {
15+
return ManagedExecutor.builder().build();
16+
}
17+
18+
void disposeExecutor(@Disposes @AppContext ManagedExecutor exec) {
19+
exec.shutdownNow();
20+
}
21+
}

src/main/java/org/eclipse/microprofile/starter/rest/APIService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.eclipse.microprofile.starter.core.model.ModelManager;
4141
import org.eclipse.microprofile.starter.core.model.OptionValue;
4242
import org.eclipse.microprofile.starter.core.validation.PackageNameValidator;
43+
import org.eclipse.microprofile.starter.log.AppContext;
4344
import org.eclipse.microprofile.starter.log.ErrorLogger;
4445
import org.eclipse.microprofile.starter.log.LoggingTask;
4546
import org.eclipse.microprofile.starter.rest.model.MPOptionsAvailable;
@@ -204,7 +205,8 @@ private List<StandaloneMPSpec> defineStandaloneSpecs(MicroProfileVersion version
204205
ZipFileCreator zipFileCreator;
205206

206207
@Inject
207-
ManagedExecutor executor;
208+
@AppContext
209+
transient ManagedExecutor executor;
208210

209211
public Response readme(String ifNoneMatch) {
210212
if (ifNoneMatch != null) {

src/main/java/org/eclipse/microprofile/starter/view/GeneratorDataBean.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.eclipse.microprofile.starter.core.model.MicroProfileVersion;
4343
import org.eclipse.microprofile.starter.core.model.ModelManager;
4444
import org.eclipse.microprofile.starter.core.model.OptionValue;
45+
import org.eclipse.microprofile.starter.log.AppContext;
4546
import org.eclipse.microprofile.starter.log.ErrorLogger;
4647
import org.eclipse.microprofile.starter.log.LoggingTask;
4748

@@ -89,7 +90,8 @@ public class GeneratorDataBean implements Serializable {
8990
ErrorLogger errorLogger;
9091

9192
@Inject
92-
ManagedExecutor executor;
93+
@AppContext
94+
transient ManagedExecutor executor;
9395

9496
private EngineData engineData;
9597

src/main/java/org/eclipse/microprofile/starter/view/HeaderFilter.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,19 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
4141
servletResponse.setHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains");
4242
servletResponse.setHeader("X-Content-Type-Options", "nosniff");
4343
servletResponse.setHeader("X-Frame-Options", "DENY");
44-
servletResponse.setHeader("Content-Security-Policy", "default-src: https: font-src 'https://fonts.googleapis.com';" +
45-
"img-src 'self' https://microprofile.io; style-src 'self'; frame-ancestors 'none';");
44+
servletResponse.setHeader("Content-Security-Policy", ""
45+
+ "default-src 'self'; "
46+
+ "script-src 'self' 'unsafe-inline' 'unsafe-eval' "
47+
+ " https://use.fontawesome.com "
48+
+ " https://kit.fontsawesome.com; "
49+
+ "style-src 'self' 'unsafe-inline' "
50+
+ " fonts.gstatic.com "
51+
+ " fonts.googleapis.com "
52+
+ " *.fontawesome.com; "
53+
+ "img-src 'self' fonts.gstatic.com microprofile.io; "
54+
+ "font-src 'self' fonts.gstatic.com fonts.googleapis.com *.fontsawesome.com; "
55+
+ "connect-src 'self' fonts.gstatic.com fonts.googleapis.com *.fontsawesome.com; "
56+
);
4657
chain.doFilter(request, response);
4758
}
4859

src/main/liberty/config/server.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<server description="${project.name}">
3+
<featureManager>
4+
<feature>microProfile-4.1</feature>
5+
<feature>webprofile-8.0</feature>
6+
<feature>mpContextPropagation-1.2</feature>
7+
</featureManager>
8+
<httpEndpoint id="defaultHttpEndpoint"
9+
httpPort="9080"
10+
httpsPort="9443"/>
11+
<webApplication location="${project.name}.war" contextRoot="${app.context.root}">
12+
<classloader apiTypeVisibility="+third-party" />
13+
</webApplication>
14+
</server>

0 commit comments

Comments
 (0)