<dependency>
<groupId>org.osgi.enroute</groupId>
<artifactId>org.osgi.enroute.base.webresource.angular.cli</artifactId>
<version>1.0.0</version>
</dependency>
text
Webresource-Require: angular
typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-hello',
template: `
<h1>Hello, {{ name }}!</h1>
`
})
export class HelloComponent {
name = 'World';
}
import org.osgi.service.component.annotations.*;
@Component(
property = {
"org.osgi.http.whiteboard.resource.pattern=/hello.js",
},
service = Servlet.class
)
public class AngularWebResourceServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/javascript");
// Load the generated Angular JavaScript file
InputStream inputStream = getClass().getResourceAsStream("/WEB-INF/hello.js");
try (OutputStream outputStream = response.getOutputStream()) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
}
}
}
html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My App</title>
<base href="/">
<!-- Load the Angular JavaScript file -->
<script src="/hello.js"></script>
<script>
// Bootstrap the Angular application
document.addEventListener('DOMContentLoaded', function() {
ng.platformBrowserDynamic.platformBrowserDynamic()
.bootstrapModule(HelloModule);
});
</script>
</head>
<body>
<app-hello></app-hello>
</body>
</html>