2010-07-14 31 views
13

Có các thư viện Perl rất tốt (ví dụ: Apache::Admin::Config) để hoạt động trên các tệp cấu hình unix truyền thống như httpd.conf. Bất cứ ai biết nếu có thư viện Java tốt để làm nhiệm vụ tương tự?Có thư viện Java nào hoạt động trên các tệp cấu hình unix như http.conf

Tôi biết có một thư viện c có tên là Augeas với sự ràng buộc Java. Có ai từng sử dụng điều đó trước đây không?

Cảm ơn!

+2

Tôi biết rằng (ít nhất) Jetty có thể đọc các tệp .htaccess về cơ bản là kiểu cấu hình Apache HTTPD. Có thể bạn có thể sử dụng lại việc triển khai của họ. – sfussenegger

Trả lời

-2

Cấu hình Commons thao tác với tệp cấu hình.

Thậm chí nó còn cung cấp tùy chọn lưu các thuộc tính được thao tác trong tệp mới.

PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties"); 
config.setProperty("colors.background", "#000000); 
config.save("usergui.backup.properties); 

Tham khảo theo liên kết

http://commons.apache.org/configuration/userguide/howto_filebased.html#File-based_Configurations

Thậm chí, Apache Ant cũng có thể giúp bạn trong việc thao tác với các tập tin cấu hình hiện tại sử dụng thực hiện PropertyHelper của riêng bạn.

http://ant.apache.org/manual/properties.html#propertyHelper

EDITED sau phản ứng trong bình luận cấu hình

Apache làm cung cấp mở rộng sử dụng Nhà máy đậu, bạn cần phải tạo ra các tập tin cấu hình Apache lớp miền httpd.conf chính mình, để làm cho nó đang làm việc.

Xác định mô-đun Apache trong java, bạn có thể xem xét nguồn Netloony, dịch vụ/apache/modules để có ý tưởng về điều này.

http://netloony.sourceforge.net/userguide/intro.html

Trong netloony các tập tin cấu hình các giá trị được thể hiện trong JTable, bạn cần phải sử dụng bất kỳ khuôn khổ cấu hình để kéo dài nó trong tập tin.

Hy vọng điều này sẽ giúp, tôi hiểu không có gì trong Box trong java hiện nay để đọc các tập tin conf apache. Tôi đã cố gắng đưa ra một con trỏ nơi bạn có thể bắt đầu bằng ..

+0

Cảm ơn thông tin. Nhưng Apache Commons Configuration không phải là thứ tôi đang tìm kiếm. Thư viện này không thể thao tác các tệp cấu hình http apache trông giống như:

 ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 300 MaxKeepAliveRequests 100 KeepAliveTimeout 15  StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000   StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75  ... 

0

Có vẻ như không phải là một thư viện hiện có cho mục đích đó. Tuy nhiên, bạn có thể sử dụng Augeas, một thư viện được tạo để chỉnh sửa các tệp cấu hình. Không giống như giải pháp bạn đang tìm kiếm, tuy nhiên, bạn cần phải nói cho Augeas cách diễn giải tệp cấu hình trước, có thể mất nhiều thời gian hơn giá trị của nó.

6

Tôi đã làm việc (lập trình, cho dự án) với nhiều tệp cấu hình từ nhiều dự án * nix như Apache, Squid's, smtpd's, ldap's, PAM's etc. v.v. Tôi đã nhận ra rằng không có định dạng chung (ngữ pháp) nhưng thay vào đó mỗi dự án định nghĩa định dạng ad-hoc của riêng mình và triển khai thực hiện trình phân tích cú pháp tùy chỉnh của riêng nó. Không có thông số chung.

Vì vậy, aproach trên các dự án * nix config files si không "sử dụng thư viện phân tích cú pháp" mà đúng hơn là "hãy viết trình phân tích cú pháp của riêng bạn".

Tuy nhiên, có những dự án cố gắng tuân thủ một số loại tiêu chuẩn. Phổ biến nhất amog theese là .ini file format (có nguồn gốc trên OS/2 và cửa sổ) hoặc GConf file format, cho người này bạn có thể tìm thấy dễ dàng available phân tích cú pháp.

Apache (đọc một bản vá-e, như được làm từ nhiều bản vá) nằm trong lớp biểu mẫu tự do. Nó bắt đầu với một định dạng var value sau đó, sau rất nhiều "vá", thêm một ngữ pháp warty-xmlish cho specifing phạm vi và bối cảnh của config vars.

  • Nếu bạn chỉ tinh chỉnh các phần của tệp cấu hình, có lẽ cách tốt nhất là quét tệp tìm kiếm các định dạng mong muốn và sau đó làm việc với tệp cục bộ.
  • Nếu bạn cần định cấu hình toàn bộ tệp, hãy tạo trình phân tích cú pháp Java tốt hơn dựa trên C.
0

Augeas có liên kết Java thực sự, và nó cũng có một ống kính Httpd, do đó, nó chắc chắn là một giải pháp có thể chấp nhận được.

1

Đây là thư viện Java có thể được sử dụng để phân tích cú pháp cấu hình Máy chủ Apache. ApacheConfParser

+0

Đây có phải là tệp phân tích cú pháp http.conf apache không? nếu tôi muốn sử dụng thư viện để phân tích cú pháp ví dụ như file conf mực? –

Các vấn đề liên quan