<dependencies>
<!-- OSGi Enroute -->
<dependency>
<groupId>org.osgi.enroute.bundles</groupId>
<artifactId>javax.servlet.api</artifactId>
<version>1.0.0</version>
<!--<scope>provided</scope>-->
</dependency>
<!-- Google Angular -->
<dependency>
<groupId>com.google.javascript</groupId>
<artifactId>closure-compiler</artifactId>
<version>20201010</version>
</dependency>
</dependencies>
import org.osgi.service.component.annotations.Component;
import org.osgi.service.http.HttpService;
import org.osgi.service.http.NamespaceException;
import org.osgi.service.http.whiteboard.HttpWhiteboardConstants;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component(
service = HttpServlet.class,
property = {
HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + "=/*"
}
)
public class HelloWorldServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("Hello, OSGi Enroute + Angular!");
}
}
mvn clean install
java -jar target/*.jar
ng new my-app
typescript
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
template: `
<h1>Welcome to OSGi Enroute + Angular!</h1>
<button (click)="getData()">Get Data from OSGi</button>
<div>{{ data }}</div>
`
})
export class AppComponent implements OnInit {
data: string;
constructor(private http: HttpClient) {}
ngOnInit() {
this.getData();
}
getData() {
this.http.get('http://localhost:8080/').subscribe((response: any) => {
this.data = response;
});
}
}
ng serve
ng build --prod