@Override
  public void run(DataConfiguration configuration, Environment environment)
      throws ClassNotFoundException {
    JmxReporter.forRegistry(environment.metrics()).build().start();

    ObjectGraph objectGraph = ObjectGraph.create(new DataModule(environment, configuration));
    environment.healthChecks().register("data", objectGraph.get(DataHealthCheck.class));
    environment.jersey().register(objectGraph.get(TodoResource.class));
  }
 private void setUpManager(long expiry, boolean isDPMEnabled) {
   ObjectGraph objectGraph = ObjectGraph.create(new TestPipelineManagerModule(expiry));
   RuntimeInfo info = objectGraph.get(RuntimeInfo.class);
   info.setDPMEnabled(isDPMEnabled);
   pipelineStoreTask = objectGraph.get(PipelineStoreTask.class);
   pipelineStateStore = objectGraph.get(PipelineStateStore.class);
   pipelineManager = new StandaloneAndClusterPipelineManager(objectGraph);
   pipelineManager.init();
 }
Example #3
0
 @VisibleForTesting
 public Main(ObjectGraph dagger, Task task) {
   this.dagger = dagger;
   if (task == null) {
     task = dagger.get(TaskWrapper.class);
   }
   this.task = task;
 }
 @BeforeClass
 public static void setupSilkDi() {
   ObjectGraph objectGraph = ObjectGraph.create(new DependencyModule());
   AncientBattleShipApp ancientBattleShipApp = objectGraph.get(AncientBattleShipApp.class);
   oceanEventService = ancientBattleShipApp.getOceanService();
 }
Example #5
0
  public int doMain() {
    SecurityContext securityContext;
    Logger log = null;
    try {
      final Task task = this.task;
      dagger.get(LogConfigurator.class).configure();
      log = LoggerFactory.getLogger(Main.class);
      log.info("-----------------------------------------------------------------");
      dagger.get(BuildInfo.class).log(log);
      log.info("-----------------------------------------------------------------");
      dagger.get(RuntimeInfo.class).log(log);
      log.info("-----------------------------------------------------------------");
      if (System.getSecurityManager() != null) {
        log.info(
            "  Security Manager : ENABLED, policy file: {}",
            System.getProperty("java.security.policy"));
      } else {
        log.warn("  Security Manager : DISABLED");
      }
      log.info("-----------------------------------------------------------------");
      log.info("Starting ...");

      securityContext =
          new SecurityContext(dagger.get(RuntimeInfo.class), dagger.get(Configuration.class));
      securityContext.login();

      log.info("-----------------------------------------------------------------");
      log.info(
          "  Kerberos enabled: {}", securityContext.getSecurityConfiguration().isKerberosEnabled());
      if (securityContext.getSecurityConfiguration().isKerberosEnabled()) {
        log.info(
            "  Kerberos principal: {}",
            securityContext.getSecurityConfiguration().getKerberosPrincipal());
        log.info(
            "  Kerberos keytab: {}",
            securityContext.getSecurityConfiguration().getKerberosKeytab());
      }
      log.info("-----------------------------------------------------------------");
      log.info("Starting ...");

      final Logger finalLog = log;
      final ShutdownHandler.ShutdownStatus shutdownStatus = new ShutdownHandler.ShutdownStatus();
      Subject.doAs(
          securityContext.getSubject(),
          new PrivilegedExceptionAction<Void>() {
            @Override
            public Void run() throws Exception {
              task.init();
              Thread shutdownHookThread =
                  new Thread("Main.shutdownHook") {
                    @Override
                    public void run() {
                      finalLog.debug("Stopping, reason: SIGTERM (kill)");
                      task.stop();
                    }
                  };
              getRuntime().addShutdownHook(shutdownHookThread);
              dagger
                  .get(RuntimeInfo.class)
                  .setShutdownHandler(new ShutdownHandler(finalLog, task, shutdownStatus));
              task.run();
              task.waitWhileRunning();
              try {
                getRuntime().removeShutdownHook(shutdownHookThread);
              } catch (IllegalStateException ignored) {
                // thrown when we try and remove the shutdown
                // hook but it is already running
              }
              finalLog.debug("Stopping, reason: programmatic stop()");
              return null;
            }
          });
      return shutdownStatus.getExitStatus();
    } catch (Throwable ex) {
      if (log != null) {
        log.error("Abnormal exit: {}", ex.toString(), ex);
      }
      System.out.println();
      System.out.printf(Utils.format("Abnormal exit: {}", ex.toString()));
      System.out.printf("Check STDERR for more details");
      System.out.println();
      System.err.println();
      ex.printStackTrace(System.err);
      System.err.println();
      return 1;
    }
  }
 @Override
 public void run(ServiceConfiguration serviceConfiguration, Environment environment)
     throws Exception {
   ObjectGraph objectGraph = ObjectGraph.create(new DaggerModule());
   environment.addResource(objectGraph.get(HelloWorldService.class));
 }
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ObjectGraph objectGraph = ObjectGraph.create(new KwikShopModule(getActivity()));
    locationViewModel = objectGraph.get(LocationViewModel.class);
    objectGraph.inject(this);

    context = getActivity().getApplicationContext();

    View rootView = inflater.inflate(R.layout.fragment_setting, container, false);
    ListView listView = (ListView) rootView.findViewById(android.R.id.list);

    listView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            // local change
            if (settingsList.get(position).equals(localeSetting)) changeLocalOption();

            // delete history of autocompletion
            if (settingsList.get(position).equals(autoCompletionDeletionSetting))
              deleteAutoCompletionHistoryOption();

            // manage units
            if (settingsList.get(position).equals(manageUnitsSetting)) manageUnits();

            // set API endpoint
            if (settingsList.get(position).equals(apiEndpointSetting)) setApiEndpoint();

            // location permission
            if (settingsList.get(position).equals(locationPermissionSetting)) {
              setLocationPermission(position);
            }

            // Item deletion
            if (settingsList.get(position).equals(itemDeletionSetting)) {
              setItemDeletionSetting(position);
            }

            // Shopping List deletion
            if (settingsList.get(position).equals(slDeletionSetting)) {
              setShoppingListDeletionSetting(position);
            }

            // Recipe deletion
            if (settingsList.get(position).equals(recipeDeletionSetting)) {
              setRecipeDeletionSetting(position);
            }

            // Default recipes
            if (settingsList.get(position).equals(recipeAddDefaultSetting)) {
              setRecipeAddDefaultSetting(position);
            }

            // Parser separator word
            if (settingsList.get(position).equals(parserSeparatorWordSetting)) {
              setParserSeparatorWord();
            }

            if (settingsList.get(position).equals(loginSetting)) {
              startLoginActivity();
            }

            if (settingsList.get(position).equals(syncNowSetting)) {
              SyncingActivity.requestSync();
            }

            if (settingsList.get(position).equals(enableSyncSetting)) {
              setEnableSynchronization(position);
            }

            if (settingsList.get(position).equals(syncIntervalSetting)) {
              selectSyncInterval();
            }

            if (settingsList.get(position).equals(placeTypeSetting)) {
              locationViewModel.setContext(context);
              locationViewModel.selectPlaceType();
            }

            if (settingsList.get(position).equals(askForLocalizationPermissionSetting)) {
              setAskForLocationPermission(position);
            }
          }
        });

    // set title for actionbar
    getActivity().setTitle(R.string.title_activity_settings);

    // Locale Setting
    localeSetting = new Setting(context);
    localeSetting.setName(R.string.settings_option_2_setlocale);
    localeSetting.setCaption(R.string.settings_option_2_desc);

    // Autocompletion deletion
    autoCompletionDeletionSetting = new Setting(context);
    autoCompletionDeletionSetting.setName(R.string.settings_option_3_deleteHistory);
    autoCompletionDeletionSetting.setCaption(R.string.settings_option_3_desc);

    // manage units
    manageUnitsSetting = new Setting(context);
    manageUnitsSetting.setName(R.string.settings_option_3_manageUnits);
    manageUnitsSetting.setCaption(R.string.settings_option_3_desc2);

    // API endpoint settings
    apiEndpointSetting = new Setting(context);
    apiEndpointSetting.setName(R.string.settings_option_4_APIEndPoint_Title);
    apiEndpointSetting.setCaption(R.string.settings_option_4_APIEndPoint_Desc);

    // permission for location tracking
    locationPermissionSetting = new Setting(context);
    locationPermissionSetting.setName(R.string.settings_option_5_location_permission_title);
    locationPermissionSetting.setCaption(R.string.settings_option_5_location_permission_desc);
    locationPermissionSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.LOCATION_PERMISSION, false, getActivity()));
    locationPermissionSetting.setViewVisibility(View.VISIBLE);

    // Show Dialog when deleting an item
    itemDeletionSetting = new Setting(context);
    itemDeletionSetting.setName(R.string.settings_option_6_item_deletion_name);
    itemDeletionSetting.setCaption(R.string.settings_option_6_item_deletion_descr);
    itemDeletionSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.ITEM_DELETION_SHOW_AGAIN_MSG, false, getActivity()));
    itemDeletionSetting.setViewVisibility(View.VISIBLE);

    // Show Dialog when deleting a Shopping List
    slDeletionSetting = new Setting(context);
    slDeletionSetting.setName(R.string.settings_options_delete_shoppinglist_name);
    slDeletionSetting.setCaption(R.string.settings_options_delete_shoppinglist_descr);
    slDeletionSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.SL_DELETION_SHOW_AGAIN_MSG, false, getActivity()));
    slDeletionSetting.setViewVisibility(View.VISIBLE);

    // Show Dialog when deleting a recipe
    recipeDeletionSetting = new Setting(context);
    recipeDeletionSetting.setName(R.string.settings_options_delete_recipe_name);
    recipeDeletionSetting.setCaption(R.string.settings_options_delete_recipe_descr);
    recipeDeletionSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.RECIPE_DELETION_SHOW_AGAIN_MSG, false, getActivity()));
    recipeDeletionSetting.setViewVisibility(View.VISIBLE);

    // Ask to add default recipes when the user has no recipes
    recipeAddDefaultSetting = new Setting(context);
    recipeAddDefaultSetting.setName(R.string.settings_options_add_default_recipes_name);
    recipeAddDefaultSetting.setCaption(R.string.settings_options_add_default_recipes_descr);
    recipeAddDefaultSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.ASK_TO_ADD_DEFAULT_RECIPES, false, getActivity()));
    recipeAddDefaultSetting.setViewVisibility(View.VISIBLE);

    // Choose separator word for the parser
    parserSeparatorWordSetting = new Setting(context);
    parserSeparatorWordSetting.setName(R.string.settings_option_7_parser_separate_word_name);
    parserSeparatorWordSetting.setCaption(R.string.settings_option_7_parser_separate_word_descr);

    // LoginActivity
    loginSetting = new Setting(context);
    loginSetting.setName(R.string.settings_option_8_login_name);
    loginSetting.setCaption(R.string.settings_option_8_login_descr);

    // Ask for Localization Permission
    askForLocalizationPermissionSetting = new Setting(context);
    askForLocalizationPermissionSetting.setName(R.string.setting_permission_for_localization_title);
    askForLocalizationPermissionSetting.setCaption(
        R.string.setting_permission_for_localization_desc);
    askForLocalizationPermissionSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.LOCATION_PERMISSION_SHOW_AGAIN_MSG, false, getActivity()));
    askForLocalizationPermissionSetting.setViewVisibility(View.VISIBLE);

    enableSyncSetting = new Setting(context);
    enableSyncSetting.setName(R.string.settings_option_enableSync_name);
    enableSyncSetting.setCaption(R.string.settings_option_enableSync_descr);
    enableSyncSetting.setChecked(
        SharedPreferencesHelper.loadBoolean(
            SharedPreferencesHelper.ENABLE_SYNCHRONIZATION, true, context));
    enableSyncSetting.setViewVisibility(View.VISIBLE);

    syncNowSetting = new Setting(context);
    syncNowSetting.setName(R.string.settings_option_sync_name);
    syncNowSetting.setCaption(R.string.settings_option_sync_descr);

    syncIntervalSetting = new Setting(context);
    syncIntervalSetting.setName(R.string.settings_options_syncInterval_name);
    syncIntervalSetting.setCaption(R.string.settings_options_syncInterval_descr);

    // Change Place Request Type
    placeTypeSetting = new Setting(context);
    placeTypeSetting.setName(R.string.localization_store_types_dialog_title);
    placeTypeSetting.setCaption(R.string.localization_store_types_dialog_caption);

    // headers
    Setting locationHeaderSetting;
    Setting generalHeaderSetting;
    Setting accountHeaderSetting;
    Setting synchronizationHeaderSetting;
    Setting otherHeaderSetting;

    // localization header
    locationHeaderSetting = new Setting(context);
    locationHeaderSetting.setIsHeader(true);
    locationHeaderSetting.setName(R.string.localization);

    // general header
    generalHeaderSetting = new Setting(context);
    generalHeaderSetting.setIsHeader(true);
    generalHeaderSetting.setName(R.string.general);

    // account header
    accountHeaderSetting = new Setting(context);
    accountHeaderSetting.setIsHeader(true);
    accountHeaderSetting.setName(R.string.account);

    // synchronization header
    synchronizationHeaderSetting = new Setting(context);
    synchronizationHeaderSetting.setIsHeader(true);
    synchronizationHeaderSetting.setName(R.string.synchronization);

    // other heady
    otherHeaderSetting = new Setting(context);
    otherHeaderSetting.setIsHeader(true);
    otherHeaderSetting.setName(R.string.other);

    // list of settings
    settingsList =
        new ArrayList<>(
            Arrays.asList(
                new Setting[] {
                  accountHeaderSetting,
                  loginSetting,
                  generalHeaderSetting,
                  localeSetting,
                  autoCompletionDeletionSetting,
                  manageUnitsSetting,
                  recipeAddDefaultSetting,
                  parserSeparatorWordSetting,
                  locationHeaderSetting,
                  locationPermissionSetting,
                  askForLocalizationPermissionSetting,
                  placeTypeSetting,
                  synchronizationHeaderSetting,
                  syncNowSetting,
                  syncIntervalSetting,
                  enableSyncSetting,
                  otherHeaderSetting,
                  itemDeletionSetting,
                  slDeletionSetting,
                  recipeDeletionSetting
                }));

    if (BuildConfig.DEBUG_MODE) {
      settingsList.add(apiEndpointSetting);
    }

    // Adapter for settings view
    objAdapter = new SettingAdapter(getActivity(), R.layout.fragment_setting_row, settingsList);
    listView.setAdapter(objAdapter);
    listView.setSelector(R.drawable.list_selector);
    listView.setDividerHeight(0);

    return rootView;
  }