2009-02-17 12 views
6

Aplikacja RCP Eclipse wymaga pliku konfiguracyjnego zawierającego informacje umożliwiające połączenie ze zdalną bazą danych. Gdzie jest najlepsza lokalizacja do przechowywania tego pliku konfiguracyjnego?Eclipse RCP: Korzystanie z katalogu konfiguracyjnego

Czy mogę użyć domyślnego katalogu konfiguracyjnego (gdzie zwykle przechowywane jest "config.ini")? Jeśli tak, to w jaki sposób można programowo pobrać instancję pliku do tej lokalizacji? Zauważyłem również, że ten katalog nie istnieje w moim IDE Eclipse.

Dzięki.

Odpowiedz

0

Zwykle lubię ukrywać pliki konfiguracyjne w katalogu "bin" lub gdzieś w katalogu głównym. Powinieneś prawdopodobnie przechowywać go w podkatalogu projektu, aby nie zaśmiecać losowej lokalizacji w systemie. Jeśli trzeba uzyskać uchwyt do pliku, można po prostu zrobić:

File configFile = new File("./bin/remoteDbConfig.ini"); 

Następnie, jeśli jest to prawdą pliku ini, można użyć Properties.load() ładować i używać wartości z pliku ini.

Można również użyć interfejsu API preferencji do przechowywania danych potrzebnych do połączenia zdalnego.

+0

Czy użytkownik może zmienić ustawienia, czy może jest względnie zakodowany? –

+0

Możesz zmienić ustawienia programowo, ale musisz dać użytkownikowi sposób, aby to zrobić. (Opcja preferencji GUI, np. Zaćmienie, cmd line arg, itp.) Properties.setProperty (key, val), a następnie Properties.store (strumień, nagłówek) –

5

Masz, jak zawsze, wiele opcji, w zależności od wymagań.

  • użyć Runtime Preferences do przechowywania w PreferenceStore z odpowiednim PreferenceInitializer. Całkiem duży i obszerny interfejs API z całkiem niezłą myślą. Preferencje nie są domyślnie dostępne dla użytkownika lub administratora, więc należy wykonać pewne czynności, aby odsłonić stronę preferencji lub napisać do pliku właściwości.

Dla mniej zaawansowanych/mniej pracy, zwłaszcza jeśli nie masz dostępu do preferencji zaćmienie (np server side OSGi)

  • ustawiony jako właściwość systemowa w RCP.ini. Nie można zmienić użytkownika po uruchomieniu, wymaga dostępu do pliku RCP.ini (eclipse.ini), co może być szczególnie przydatne, jeśli nie wspieracie IDE.
  • ustawiono jako właściwość systemową, jako argument w skrócie. Zależy od użytkownika za pomocą skrótu. Specjalistyczny skrót musi zostać wygenerowany w czasie instalacji.

Jeśli dostępność z systemu plików jest naprawdę ważne, to uznałbym za pomocą jednej z powyższych metod, aby ustawić katalog etc i pozwól wiązki generują domyślne właściwości plików w katalogu etc jeśli nie istnieje przy pierwszym użyciu. Zasadniczo jest to zwijanie twojego własnego magazynu preferencji, więc jeśli masz pakiet preferencji dostępu, może lepiej to zrobić. Ten stary model User Settings FAQ może być również pomocny.

Przypominam sobie wywiad Ericha Gammy (jak w Gang of Four i JDT), w którym mówi on, że istnieje około siedmiu różnych mechanizmów preferencji i nigdy nie wiedział, którego użyć.

0

Aby uzyskać lokalizację pliku z katalogu konfiguracji, uruchom:

nowy org.eclipse.core.runtime.preferences.ConfigurationScope() getLocation() tofile();..

2

Jak już podkreślono, Preferencje API to coś, na co warto zwrócić uwagę. Istnieje również Secure Preferences API, który jest odpowiedni do przechowywania nazw użytkowników i haseł zaszyfrowanych na dysku.

Inną opcją jest skorzystanie z usługi "org.eclipse.osgi.sergi.datalocation.Location" OSGi. Zapewnia to dostęp do różnych dostępnych lokalizacji.

Trzecią opcją jest zdefiniowanie właściwości systemu w pliku "config.ini", który wskazuje plik z informacjami o połączeniu za pomocą symboli zastępczych: "[email protected]/mysettings.ini". "@ config.dir" to symbol zastępczy, który zostaje zastąpiony faktyczną ścieżką do katalogu konfiguracji.

Powiązane problemy