This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git


The following commit(s) were added to refs/heads/master by this push:
     new 8a2fbaa  Adding login service for new webapp
8a2fbaa is described below

commit 8a2fbaaa1ca2ec32d9e06683f8c68aad4a29a42d
Author: Martin Stockhammer <[email protected]>
AuthorDate: Sun Jul 19 13:27:03 2020 +0200

    Adding login service for new webapp
---
 .../src/main/archiva-web/src/app/app.module.ts     |  2 ++
 .../app/modules/general/login/login.component.ts   |  7 ++++-
 .../archiva-request.service.spec.ts}               | 34 ++++++++--------------
 .../archiva-request.service.ts}                    | 34 ++++++++++------------
 .../login.service.spec.ts}                         | 34 ++++++++--------------
 .../login.service.ts}                              | 28 ++++++------------
 .../archiva-web/src/environments/environment.ts    |  7 +++++
 .../archiva-webapp/src/main/webapp/WEB-INF/web.xml | 12 ++++++++
 8 files changed, 75 insertions(+), 83 deletions(-)

diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/app.module.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/app.module.ts
index e991091..270aa43 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/app.module.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/app.module.ts
@@ -18,6 +18,7 @@
  */
 import { BrowserModule } from '@angular/platform-browser';
 import { NgModule } from '@angular/core';
+import { HttpClientModule } from '@angular/common/http';
 
 import { AppRoutingModule } from './app-routing.module';
 import { AppComponent } from './app.component';
@@ -43,6 +44,7 @@ import {FormsModule} from "@angular/forms";
     BrowserModule,
     AppRoutingModule,
     FormsModule,
+    HttpClientModule,
   ],
   providers: [],
   bootstrap: [AppComponent]
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
index bb018b6..97c0020 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
@@ -20,6 +20,7 @@ import { Component, OnInit } from '@angular/core';
 // noinspection ES6UnusedImports
 import { FormsModule } from "@angular/forms";
 import { Logindata } from "../../../logindata";
+import { LoginService } from "../../../services/login.service";
 
 @Component({
   selector: 'app-login',
@@ -36,7 +37,11 @@ export class LoginComponent implements OnInit {
 
   get diagnostic() { return JSON.stringify(this.submitted); }
 
-  constructor() {  }
+  login(): void {
+    this.loginService.login(username, password);
+  }
+
+  constructor(private loginService: LoginService) {  }
 
   ngOnInit(): void {
   }
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/archiva-request.service.spec.ts
similarity index 59%
copy from 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
copy to 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/archiva-request.service.spec.ts
index bb018b6..159b1ee 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/archiva-request.service.spec.ts
@@ -16,29 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Component, OnInit } from '@angular/core';
-// noinspection ES6UnusedImports
-import { FormsModule } from "@angular/forms";
-import { Logindata } from "../../../logindata";
+import { TestBed } from '@angular/core/testing';
 
-@Component({
-  selector: 'app-login',
-  templateUrl: './login.component.html',
-  styleUrls: ['./login.component.scss']
-})
-export class LoginComponent implements OnInit {
+import { ArchivaRequestService } from './archiva-request.service';
 
-  model = new Logindata('', '');
+describe('ArchivaRequestService', () => {
+  let service: ArchivaRequestService;
 
-  submitted = false;
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+    service = TestBed.inject(ArchivaRequestService);
+  });
 
-  onSubmit() { this.submitted = true; }
-
-  get diagnostic() { return JSON.stringify(this.submitted); }
-
-  constructor() {  }
-
-  ngOnInit(): void {
-  }
-
-}
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/archiva-request.service.ts
similarity index 53%
copy from 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
copy to 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/archiva-request.service.ts
index bb018b6..8bbfc04 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/archiva-request.service.ts
@@ -16,29 +16,25 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Component, OnInit } from '@angular/core';
-// noinspection ES6UnusedImports
-import { FormsModule } from "@angular/forms";
-import { Logindata } from "../../../logindata";
+import { Injectable } from '@angular/core';
+import { HttpClient } from "@angular/common/http";
+import { environment } from "../../environments/environment";
 
-@Component({
-  selector: 'app-login',
-  templateUrl: './login.component.html',
-  styleUrls: ['./login.component.scss']
+@Injectable({
+  providedIn: 'root'
 })
-export class LoginComponent implements OnInit {
+export class ArchivaRequestService {
 
-  model = new Logindata('', '');
 
-  submitted = false;
-
-  onSubmit() { this.submitted = true; }
-
-  get diagnostic() { return JSON.stringify(this.submitted); }
-
-  constructor() {  }
-
-  ngOnInit(): void {
+  executeRestCall(type: string, module: string, service: string, input: 
object, callback: (result: object) => void ) : void {
+    let modulePath = environment.application.servicePaths[module];
+    let url = environment.application.baseUrl + 
environment.application.restPath + "/"+modulePath+"/" + service + "Service";
+    if (type == "get") {
+      this.http.get(url,)
+    } else if ( type == "post") {
+      this.http.post(url);
+    }
   }
 
+  constructor(private http : HttpClient) { }
 }
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/login.service.spec.ts
similarity index 59%
copy from 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
copy to 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/login.service.spec.ts
index bb018b6..c75cae2 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/login.service.spec.ts
@@ -16,29 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Component, OnInit } from '@angular/core';
-// noinspection ES6UnusedImports
-import { FormsModule } from "@angular/forms";
-import { Logindata } from "../../../logindata";
+import { TestBed } from '@angular/core/testing';
 
-@Component({
-  selector: 'app-login',
-  templateUrl: './login.component.html',
-  styleUrls: ['./login.component.scss']
-})
-export class LoginComponent implements OnInit {
+import { LoginService } from './login.service';
 
-  model = new Logindata('', '');
+describe('LoginService', () => {
+  let service: LoginService;
 
-  submitted = false;
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+    service = TestBed.inject(LoginService);
+  });
 
-  onSubmit() { this.submitted = true; }
-
-  get diagnostic() { return JSON.stringify(this.submitted); }
-
-  constructor() {  }
-
-  ngOnInit(): void {
-  }
-
-}
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/login.service.ts
similarity index 60%
copy from 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
copy to 
archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/login.service.ts
index bb018b6..99937d5 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/modules/general/login/login.component.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/app/services/login.service.ts
@@ -16,29 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { Component, OnInit } from '@angular/core';
-// noinspection ES6UnusedImports
-import { FormsModule } from "@angular/forms";
-import { Logindata } from "../../../logindata";
+import { Injectable } from '@angular/core';
+import { ArchivaRequestService } from "./archiva-request.service";
 
-@Component({
-  selector: 'app-login',
-  templateUrl: './login.component.html',
-  styleUrls: ['./login.component.scss']
-})
-export class LoginComponent implements OnInit {
-
-  model = new Logindata('', '');
-
-  submitted = false;
 
-  onSubmit() { this.submitted = true; }
-
-  get diagnostic() { return JSON.stringify(this.submitted); }
+@Injectable({
+  providedIn: 'root'
+})
+export class LoginService {
 
-  constructor() {  }
+  login(username: string, password: string) {
 
-  ngOnInit(): void {
+      throw new Error("Method not implemented.");
   }
 
+  constructor(private archiva : ArchivaRequestService) { }
 }
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/environments/environment.ts
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/environments/environment.ts
index 50fea53..605dc26 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/environments/environment.ts
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/archiva-web/src/environments/environment.ts
@@ -25,6 +25,13 @@ export const environment = {
   production: false,
   application:
   {
+    baseUrl: 'http://localhost:8080',
+    restPath: '/restServices',
+    servicePaths: {
+      archiva:"archivaServices",
+      redback:"redbackServices",
+      ui:"archivaUiServices"
+    },
     name: 'archiva-starter',
     angular: 'Angular 10.0.2',
     bootstrap: 'Bootstrap 4.5.0',
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml 
b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
index e715277..fa04fc6 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
@@ -145,10 +145,22 @@
     <load-on-startup>1</load-on-startup>
   </servlet>
 
+  <servlet>
+    <servlet-name>CXFServletV2</servlet-name>
+    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+
+
   <servlet-mapping>
     <servlet-name>CXFServlet</servlet-name>
     <url-pattern>/restServices/*</url-pattern>
   </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>CXFServletV2</servlet-name>
+    <url-pattern>/api/*</url-pattern>
+  </servlet-mapping>
   
   <welcome-file-list>
     <welcome-file>index.html</welcome-file>

Reply via email to