問題タブ [apache-commons-config]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Parsing custom xml config file
My target is java 1.5 I have a custom configuration file provided from another software provider i need to read it
I need to put it in a hash map and acces to it as.
MyPropertyManager.getProperty("DEFAULT","LOGGER_NAME")
I think that I can load infos in a HashMap where I can acces usingg key like DEFAULT.LOGGER_NAME
Can I use APACHE COMMONS Configuration (HOW?) or is too complex and is better to use Xpath?
java - Apache Commons Configurationは、値と等しい属性を持つ親に基づいてプロパティを取得します
アプリケーションの構成に XML を使用した Apache Commons Configuration を使用していますが、必要なプロパティを取得するのに問題があります。
私は次の XML 構造を持っています (ポイントを理解するための最小限の構造):
私が理解しているように、火星のterrain
設定を取得するためにここでできる最善のことは次のとおりです。
残念ながら、私のアプリには、これらの惑星のインデックスの概念がありません/あるべきではありません。少なくとも、インデックスは一貫していません。これらはいつでも変更される可能性があるため、上記のようにインデックスで参照することは信頼できません。
だから、私ができるようにしたいのは、次のようなものです:
ご想像のとおり、それは機能しません。私が見つけた他の唯一の方法は、鈍くて受け入れられないものです。
それが望ましくない理由がわかると思います。今、私はこのタイプの機能を追加するために Apache Commons 構成ライブラリをラップ/拡張することを検討しているところまで来ましたが、これを行うためのより簡単な方法がないことを受け入れたくありません。 .
質問の再検討
私は何を見落としていますか?これをより簡単な方法で実現するにはどうすればよいですか? この機能は単に存在しないのでしょうか?
java - Apache Commons の構成: 自動保存が有効になっている重複するエントリ
2 つのインスタンスorg.apache.commons.configuration.CombinedConfiguration
を含むを使用します。org.apache.commons.configuration.XMLConfiguration
1 つはデフォルト設定として使用され、私の JAR とともにデプロイされます。もう 1 つは、デフォルト値を上書きできるユーザー設定です。
インスタンスをロードするコードは次のとおりです。
インスタンスを使用AUTO_SAVE = true
するuserConfig
と、これまでに機能していたファイルへの変更が自動的に保存されます。私の問題は、パラメーターを複数回追加するため、構成ファイルが無秩序に見えることです。
たとえば、PATH_HSQL_DB
起動時にパラメーターを変更します。3 回の起動後、パラメータは に割り当てられたファイルに 3 回保存されuserConfig
ます。
userConfig
これは、インスタンスにパラメーターを追加するコードです。
これを防ぐにはどうすればよいですか?
java - Apache Commons - ConfigurationInterpolator ブロック スレッド
マルチスレッド アプリケーションでは、優れた Apache Commons ライブラリを使用します。ただし、何らかの理由で、getListおよび同様のメソッドを呼び出すと、スレッドの半分がブロックされます。
これはスレッドダンプのサンプルです:
スレッドが ( getListまたはgetIntまたは同様のメソッドによって) ブロックされるたびに、ロックは ConfigurationInterplator クラスにあります。そのソースを見ると、クラスのインスタンス化が同期されていることがわかりますが、プロパティを読み取ることができればよく、毎回補間する必要はありません。
この制限を乗り越えるために Apache Commons に組み込み方法はありますか? たとえば、毎回補間ステップを実行せず、何らかの方法でキャッシュしますか?
ありがとう、クリシー
java - 構成ファイルを新しいバージョンに移行するには、どのような戦略が必要ですか?
これは完全に実装に依存する質問であることは理解していますが、構成ファイルを移行するために使用される一般的な戦略を知りたいです。
プロパティ/XML ファイルからいくつかの構成を読み取る製品があります。一部のデフォルト値は、プロパティ ファイルで構成されます。顧客は、必要に応じてプロパティを変更できます。ここで、ファイル内のいくつかのプロパティを変更または追加し、顧客が新しいバージョンに移行したとします。顧客固有の構成を、新しく追加または更新されたプロパティとどのようにマージする必要がありますか? 1 つの方法は、ファイルをマージするためのユーティリティを作成することですが、リリースごとに実行したくはありません。
前もって感謝します
java - jarファイル内にあるプロパティファイルをロードする方法
実行可能なjarファイルのリソースフォルダに配置されたプロパティファイルをロードする方法。ここで、私のアプリ自体は jar であり、単独で実行されます。コードに記載されているパスに応じて、実行時にこのプロパティ ファイル (リソース フォルダーの下に配置されている) を見つける必要があります。以下の2つの方法を使用しましたが、役に立ちませんでした。ここでのポイントは、これらのオプションは両方とも、Eclipse で実行すると正常に機能しますが、実行可能な jar にパックすると機能しません。NullPointerException をスローします。ここで見られる唯一の問題は、jar が指定されたパスのプロパティ ファイルを選択できないことです。どんな助けでも大歓迎です。
方法 1: Apache Commons 構成を使用する
上記の場合、ConfigurationException が発生しています。クラスは、指定されたパスに記載されているファイルを見つけることができません。
方法 2: getResourceAsStream を使用します。他の場所のネットワークからファイルをロードする場合、 getResource が機能しないことを私は知っています。
この場合、nullPointerException が発生します。詳細が必要な場合はお知らせください。
jar コンテンツ階層
java - 区切られていないプロパティを取得する方法は?
commons-configuration v1.10 を使用しており、このクラスを使用PropertiesConfiguration
してアプリケーションのプロパティを読み込んでいます。カンマを含むプロパティがありますが、それを読み込むと区切られてしまい、カンマをなくす方法がわかりません。
プロパティをすべて順番にコンマを含めて吐き出しますが、問題になっているのは、「[」と「]」で囲まれているためです。
AbstractConfiguration
には区切りを無効にする関数 がsetDelimiterParsingDisabled()
ありますが、プロパティ ファイルを読み取るためにそれを実装したクラスが見つかりませんでした。