void processArguments()

in pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdSources.java [395:514]


        void processArguments() throws Exception {
            super.processArguments();
            // merge deprecated args with new args
            mergeArgs();

            if (null != sourceConfigFile) {
                this.sourceConfig = CmdUtils.loadConfig(sourceConfigFile, SourceConfig.class);
            } else {
                this.sourceConfig = new SourceConfig();
            }
            if (null != tenant) {
                sourceConfig.setTenant(tenant);
            }
            if (null != namespace) {
                sourceConfig.setNamespace(namespace);
            }
            if (null != name) {
                sourceConfig.setName(name);
            }
            if (null != className) {
                this.sourceConfig.setClassName(className);
            }
            if (null != destinationTopicName) {
                sourceConfig.setTopicName(destinationTopicName);
            }
            if (null != producerConfig) {
                Type type = new TypeToken<ProducerConfig>() {}.getType();
                sourceConfig.setProducerConfig(new Gson().fromJson(producerConfig, type));
            }
            if (null != deserializationClassName) {
                sourceConfig.setSerdeClassName(deserializationClassName);
            }
            if (null != schemaType) {
                sourceConfig.setSchemaType(schemaType);
            }

            if (null != batchBuilder) {
                sourceConfig.setBatchBuilder(batchBuilder);
            }

            if (null != processingGuarantees) {
                sourceConfig.setProcessingGuarantees(processingGuarantees);
            }
            if (parallelism != null) {
                sourceConfig.setParallelism(parallelism);
            }

            if (archive != null && (sourceType != null || sourceConfig.getSourceType() != null)) {
                throw new ParameterException("Cannot specify both archive and source-type");
            }

            if (archive != null) {
                sourceConfig.setArchive(archive);
            }

            if (sourceType != null) {
                sourceConfig.setArchive(validateSourceType(sourceType));
            } else if (sourceConfig.getSourceType() != null) {
                sourceConfig.setArchive(validateSourceType(sourceConfig.getSourceType()));
            }

            Resources resources = sourceConfig.getResources();
            if (cpu != null) {
                if (resources == null) {
                    resources = new Resources();
                }
                resources.setCpu(cpu);
            }

            if (ram != null) {
                if (resources == null) {
                    resources = new Resources();
                }
                resources.setRam(ram);
            }

            if (disk != null) {
                if (resources == null) {
                    resources = new Resources();
                }
                resources.setDisk(disk);
            }
            if (resources != null) {
                sourceConfig.setResources(resources);
            }

            try {
                if (null != sourceConfigString) {
                    sourceConfig.setConfigs(parseConfigs(sourceConfigString));
                }
            } catch (Exception ex) {
                throw new ParameterException("Cannot parse source-config", ex);
            }

            if (null != batchSourceConfigString) {
                sourceConfig.setBatchSourceConfig(parseBatchSourceConfigs(batchSourceConfigString));
            }

            if (customRuntimeOptions != null) {
                sourceConfig.setCustomRuntimeOptions(customRuntimeOptions);
            }

            if (secretsString != null) {
                Type type = new TypeToken<Map<String, Object>>() {}.getType();
                Map<String, Object> secretsMap = new Gson().fromJson(secretsString, type);
                if (secretsMap == null) {
                    secretsMap = Collections.emptyMap();
                }
                sourceConfig.setSecrets(secretsMap);
            }
            if (null != logTopic) {
                sourceConfig.setLogTopic(logTopic);
            }
            if (null != runtimeFlags) {
                sourceConfig.setRuntimeFlags(runtimeFlags);
            }

            // check if source configs are valid
            validateSourceConfigs(sourceConfig);
        }