summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/config/ObjectifyListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/vts/config/ObjectifyListener.java')
-rw-r--r--src/main/java/com/android/vts/config/ObjectifyListener.java188
1 files changed, 0 insertions, 188 deletions
diff --git a/src/main/java/com/android/vts/config/ObjectifyListener.java b/src/main/java/com/android/vts/config/ObjectifyListener.java
deleted file mode 100644
index 02e0215..0000000
--- a/src/main/java/com/android/vts/config/ObjectifyListener.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you
- * may not use this file except in compliance with the License. You may
- * obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.vts.config;
-
-import com.android.vts.entity.ApiCoverageEntity;
-import com.android.vts.entity.BranchEntity;
-import com.android.vts.entity.BuildTargetEntity;
-import com.android.vts.entity.ApiCoverageExcludedEntity;
-import com.android.vts.entity.CodeCoverageEntity;
-import com.android.vts.entity.CoverageEntity;
-import com.android.vts.entity.DeviceInfoEntity;
-import com.android.vts.entity.HalApiEntity;
-import com.android.vts.entity.ProfilingPointEntity;
-import com.android.vts.entity.ProfilingPointRunEntity;
-import com.android.vts.entity.ProfilingPointSummaryEntity;
-import com.android.vts.entity.RoleEntity;
-import com.android.vts.entity.TestAcknowledgmentEntity;
-import com.android.vts.entity.TestCaseRunEntity;
-import com.android.vts.entity.TestCoverageStatusEntity;
-import com.android.vts.entity.TestEntity;
-import com.android.vts.entity.TestPlanEntity;
-import com.android.vts.entity.TestPlanRunEntity;
-import com.android.vts.entity.TestRunEntity;
-import com.android.vts.entity.TestStatusEntity;
-import com.android.vts.entity.TestSuiteFileEntity;
-import com.android.vts.entity.TestSuiteResultEntity;
-import com.android.vts.entity.UserEntity;
-import com.google.api.client.extensions.appengine.datastore.AppEngineDataStoreFactory;
-import com.google.api.services.sheets.v4.SheetsScopes;
-import com.googlecode.objectify.ObjectifyService;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Supplier;
-import java.util.stream.Stream;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/** The @WebListener annotation for registering a class as a listener of a web application. */
-@WebListener
-/**
- * Initializing Objectify Service at the container start up before any web components like servlet
- * get initialized.
- */
-public class ObjectifyListener implements ServletContextListener {
-
- private static final Logger logger = Logger.getLogger(ObjectifyListener.class.getName());
-
-
- /** Global instance of the DataStoreFactory. */
- private static final AppEngineDataStoreFactory DATA_STORE_FACTORY =
- AppEngineDataStoreFactory.getDefaultInstance();
-
- /** Global instance of the scopes. */
- private static final List<String> GOOGLE_API_SCOPES =
- Collections.singletonList(SheetsScopes.SPREADSHEETS_READONLY);
-
- /**
- * Receives notification that the web application initialization process is starting. This
- * function will register Entity classes for objectify.
- */
- @Override
- public void contextInitialized(ServletContextEvent servletContextEvent) {
- ObjectifyService.init();
- ObjectifyService.register(BranchEntity.class);
- ObjectifyService.register(BuildTargetEntity.class);
-
- ObjectifyService.register(HalApiEntity.class);
- ObjectifyService.register(ApiCoverageEntity.class);
- ObjectifyService.register(ApiCoverageExcludedEntity.class);
- ObjectifyService.register(CodeCoverageEntity.class);
- ObjectifyService.register(CoverageEntity.class);
- ObjectifyService.register(DeviceInfoEntity.class);
- ObjectifyService.register(TestCoverageStatusEntity.class);
-
- ObjectifyService.register(ProfilingPointEntity.class);
- ObjectifyService.register(ProfilingPointRunEntity.class);
- ObjectifyService.register(ProfilingPointSummaryEntity.class);
-
- ObjectifyService.register(TestEntity.class);
- ObjectifyService.register(TestPlanEntity.class);
- ObjectifyService.register(TestPlanRunEntity.class);
- ObjectifyService.register(TestRunEntity.class);
- ObjectifyService.register(TestCaseRunEntity.class);
- ObjectifyService.register(TestStatusEntity.class);
- ObjectifyService.register(TestSuiteFileEntity.class);
- ObjectifyService.register(TestSuiteResultEntity.class);
- ObjectifyService.register(TestAcknowledgmentEntity.class);
- ObjectifyService.register(RoleEntity.class);
- ObjectifyService.register(UserEntity.class);
- ObjectifyService.begin();
- logger.log(Level.INFO, "Value Initialized from context.");
-
- Properties systemConfigProp = new Properties();
-
- try {
- InputStream defaultInputStream =
- ObjectifyListener.class
- .getClassLoader()
- .getResourceAsStream("config.properties");
-
- systemConfigProp.load(defaultInputStream);
-
- servletContextEvent
- .getServletContext()
- .setAttribute("systemConfigProp", systemConfigProp);
- servletContextEvent
- .getServletContext()
- .setAttribute("dataStoreFactory", DATA_STORE_FACTORY);
- servletContextEvent
- .getServletContext()
- .setAttribute("googleApiScopes", GOOGLE_API_SCOPES);
-
- String roleList = systemConfigProp.getProperty("user.roleList");
- Supplier<Stream<String>> streamSupplier = () -> Arrays.stream(roleList.split(","));
- this.createRoles(streamSupplier.get());
-
- String adminEmail = systemConfigProp.getProperty("user.adminEmail");
- if (adminEmail.isEmpty()) {
- logger.log(Level.WARNING, "Admin email is not properly set. Check config file");
- } else {
- String adminName = systemConfigProp.getProperty("user.adminName");
- String adminCompany = systemConfigProp.getProperty("user.adminCompany");
- Optional<String> roleName =
- streamSupplier.get().filter(r -> r.equals("admin")).findFirst();
- this.createAdminUser(adminEmail, adminName, adminCompany, roleName.orElse("admin"));
- }
- } catch (FileNotFoundException e) {
- logger.log(Level.SEVERE, e.getMessage());
- } catch (IOException e) {
- logger.log(Level.SEVERE, e.getMessage());
- }
- }
-
- /** Receives notification that the ServletContext is about to be shut down. */
- @Override
- public void contextDestroyed(ServletContextEvent servletContextEvent) {
- ServletContext servletContext = servletContextEvent.getServletContext();
- logger.log(Level.INFO, "Value deleted from context.");
- }
-
- private void createRoles(Stream<String> roleStream) {
- roleStream
- .map(role -> role.trim())
- .forEach(
- roleName -> {
- RoleEntity roleEntity = new RoleEntity(roleName);
- roleEntity.save();
- });
- }
-
- private void createAdminUser(String email, String name, String company, String role) {
- Optional<UserEntity> adminUserEntityOptional =
- Optional.ofNullable(UserEntity.getAdminUser(email));
- if (adminUserEntityOptional.isPresent()) {
- logger.log(Level.INFO, "The user is already registered.");
- } else {
- UserEntity userEntity = new UserEntity(email, name, company, role);
- userEntity.setIsAdmin(true);
- userEntity.save();
- logger.log(Level.INFO, "The user is saved successfully.");
- }
- }
-}