Czy chcesz przenieść moduł mod_pagespeed na inny serwer, czy zintegrować go z innym systemem? Świetnie. Opracowaliśmy moduł mod_pagespeed tak, aby był modułowy i niemal całkowicie niezależny od Apache. Jedyny kod Apache znajduje się w katalogu net/instaweb/apache.
Więcej informacji o naszym źródle znajdziesz w artykule net/instaweb/:
- util/ i http/ mają wiele podstawowych narzędzi, w tym abstrakcyjne klasy podstawowe, takie jak
MessageHandler,TimeriUrlFetcher. Istnieje kilka przykładowych implementacji, ale konieczne będzie samodzielne utworzenie wielu z nich. - Parametr htmlparse/ zawiera podstawowy parser HTML. Nie powinno to w ogóle działać.
- W narzędziu rewritering/ znajdują się filtry przepisywania i platforma. Centralnym punktem integracji jest częściowo abstrakcyjna klasa,
RewriteDriverFactory. Twoje działania związane z integracją rozpoczynają się od podklasyfikacji i wdrożenia czystych metod wirtualnych.
Prawdopodobnie musisz wdrożyć port dla tych klas (przykładowe implementacje w katalogu apache/):
- MessageHandler – obsługa błędów (patrz na przykład FileMessageHandler i ApacheMessageHandler).
- FileSystem (zobacz przykłady StdioFileSystem i AprFileSystem)
- AbstractCondvar (zobacz przykłady PthreadCondvar i AprCondvar)
- AbstractWyciszx (zobacz przykłady PthreadWyciszx i AprWyciszx)
- Statystyki – śledź różne statystyki globalne (zobacz przykłady SimpleStats i kwietne statystyki).
- Minutnik (zobacz przykłady MockTimer i AprTimer).
- UrlFetcher – moduł pobierania zasobów według adresu URL (zobacz przykłady WgetUrlFetcher i SyncFetcherAdapter).
- UrlAsyncFetcher – ten sam interfejs, ale z interfejsem wywołania zwrotnego (zobacz przykłady WgetUrlAsyncFetcher i SerfUrlAsyncFetcher; ten drugi obsługuje asynchroniczny model zdarzenia oparty na UrlPollableAsyncFetcher).
- RewriteDriverFactory – zarządza wszystkimi opcjami i klasami dotyczącymi implementacji (zobacz przykład ApacheRewriteDriverFactory).
Następnie:
Jeśli problem został rozwiązany lub wystąpiły jakieś problemy, napisz do naszej listy adresowej dla deweloperów. Nie gwarantujemy, że wewnętrzne interfejsy pozostaną takie same, więc jeśli nie będziemy wiedzieć, że korzystasz z portu, możemy z łatwością przestać go używać.