├── .gitattributes ├── src ├── main │ ├── resources │ │ └── org │ │ │ └── fax4j │ │ │ └── spi │ │ │ └── vbs │ │ │ ├── winxp_cancel_fax.vbs │ │ │ ├── winxp_resume_fax.vbs │ │ │ ├── winxp_suspend_fax.vbs │ │ │ ├── winxp_get_fax_job_status.vbs │ │ │ ├── win2k_cancel_fax.vbs │ │ │ ├── win2k_resume_fax.vbs │ │ │ ├── win2k_suspend_fax.vbs │ │ │ ├── win2k_get_fax_job_status.vbs │ │ │ ├── win2k_submit_fax.vbs │ │ │ └── winxp_submit_fax.vbs │ ├── javadoc │ │ └── org │ │ │ └── fax4j │ │ │ ├── bridge │ │ │ ├── email │ │ │ │ └── package.html │ │ │ ├── http │ │ │ │ └── package.html │ │ │ ├── process │ │ │ │ └── package.html │ │ │ └── package.html │ │ │ ├── spi │ │ │ ├── adapter │ │ │ │ └── package.html │ │ │ ├── efax │ │ │ │ └── package.html │ │ │ ├── http │ │ │ │ └── package.html │ │ │ ├── hylafax │ │ │ │ └── package.html │ │ │ ├── mac │ │ │ │ └── package.html │ │ │ ├── email │ │ │ │ └── package.html │ │ │ ├── faxage │ │ │ │ └── package.html │ │ │ ├── hoiio │ │ │ │ └── package.html │ │ │ ├── linux │ │ │ │ └── package.html │ │ │ ├── phaxio │ │ │ │ └── package.html │ │ │ ├── vbs │ │ │ │ └── package.html │ │ │ ├── interfax │ │ │ │ └── package.html │ │ │ ├── java4less │ │ │ │ └── package.html │ │ │ ├── metrofax │ │ │ │ └── package.html │ │ │ ├── send2fax │ │ │ │ └── package.html │ │ │ ├── windows │ │ │ │ └── package.html │ │ │ ├── extremefax │ │ │ │ └── package.html │ │ │ ├── nextivafax │ │ │ │ └── package.html │ │ │ ├── comm │ │ │ │ └── package.html │ │ │ ├── process │ │ │ │ └── package.html │ │ │ └── package.html │ │ │ ├── common │ │ │ └── package.html │ │ │ ├── util │ │ │ └── package.html │ │ │ └── package.html │ ├── native │ │ └── windows │ │ │ ├── dll │ │ │ ├── fax4j_dll.vcxproj.user │ │ │ ├── CMake │ │ │ │ ├── DefaultCXX.cmake │ │ │ │ └── DefaultFortran.cmake │ │ │ ├── fax4j_dll.sln │ │ │ └── fax4j_dll.vcxproj.filters │ │ │ └── exe │ │ │ ├── fax4j_exe.vcxproj.user │ │ │ ├── fax4jwrapper.cpp │ │ │ ├── CMake │ │ │ ├── DefaultCXX.cmake │ │ │ └── DefaultFortran.cmake │ │ │ ├── fax4j_exe.sln │ │ │ └── fax4j_exe.vcxproj.filters │ ├── java │ │ └── org │ │ │ └── fax4j │ │ │ ├── spi │ │ │ ├── email │ │ │ │ ├── MailConnectionFactory.java │ │ │ │ ├── MailAuthenticator.java │ │ │ │ └── MailResourcesHolder.java │ │ │ ├── comm │ │ │ │ ├── CommPortConnectionFactory.java │ │ │ │ ├── AbstractCommPortAdapter.java │ │ │ │ ├── CommPortAdapter.java │ │ │ │ ├── AbstractFax4JFaxModemAdapter.java │ │ │ │ └── FaxModemAdapter.java │ │ │ ├── hylafax │ │ │ │ └── HylaFAXClientConnectionFactory.java │ │ │ ├── http │ │ │ │ ├── AbstractFaxJob2HTTPRequestConverter.java │ │ │ │ ├── FaxJob2HTTPRequestConverter.java │ │ │ │ ├── HTTPResponseHandler.java │ │ │ │ ├── HTTPClientConfiguration.java │ │ │ │ └── EmptyHTTPResponseHandler.java │ │ │ ├── process │ │ │ │ ├── ProcessOutputValidator.java │ │ │ │ └── ProcessOutputHandler.java │ │ │ └── FaxJobMonitor.java │ │ │ ├── common │ │ │ ├── ProviderImplementation.java │ │ │ ├── Initializable.java │ │ │ ├── FaxActionType.java │ │ │ ├── Fax4JProvider.java │ │ │ ├── Service.java │ │ │ └── SimpleLogger.java │ │ │ ├── bridge │ │ │ ├── email │ │ │ │ └── MailMessageParser.java │ │ │ ├── http │ │ │ │ └── HTTPRequestParser.java │ │ │ ├── process │ │ │ │ └── CommandLineArgumentsParser.java │ │ │ ├── RequestParser.java │ │ │ ├── ContextFaxBridge.java │ │ │ └── AbstractFax4JBridge.java │ │ │ ├── util │ │ │ ├── Connection.java │ │ │ ├── AbstractFax4JConnectionFactory.java │ │ │ ├── AbstractCloseable.java │ │ │ ├── ConnectionFactory.java │ │ │ └── ProcessExecutor.java │ │ │ ├── FaxMonitorEventListener.java │ │ │ ├── Provider.java │ │ │ ├── FaxException.java │ │ │ ├── AbstractFaxEvent.java │ │ │ └── FaxJobStatus.java │ └── assembly │ │ └── assembly_full.xml ├── test │ └── java │ │ ├── com │ │ └── java4less │ │ │ └── rfax │ │ │ ├── FaxProducer.java │ │ │ ├── TextFaxProducer.java │ │ │ ├── PDFFaxProducer.java │ │ │ └── FaxModem.java │ │ └── org │ │ └── fax4j │ │ ├── ProductInfoTest.java │ │ ├── common │ │ └── LogLevelTest.java │ │ ├── spi │ │ ├── efax │ │ │ └── EFaxMailFaxClientSpiTest.java │ │ ├── faxage │ │ │ └── FaxAgeMailFaxClientSpiTest.java │ │ ├── metrofax │ │ │ └── MetroFaxMailFaxClientSpiTest.java │ │ ├── send2fax │ │ │ └── Send2FaxMailFaxClientSpiTest.java │ │ ├── extremefax │ │ │ └── ExtremeFaxMailFaxClientSpiTest.java │ │ ├── nextivafax │ │ │ └── NextivafaxMailFaxClientSpiTest.java │ │ └── http │ │ │ └── HTTPResponseTest.java │ │ ├── util │ │ └── ProcessExecutorHelperTest.java │ │ └── bridge │ │ └── EmptyVendorPolicyTest.java └── site │ └── site.xml ├── docs ├── css │ ├── site.css │ └── print.css ├── images │ ├── add.gif │ ├── fix.gif │ ├── rss.png │ ├── close.gif │ ├── expanded.gif │ ├── external.png │ ├── remove.gif │ ├── update.gif │ ├── collapsed.gif │ ├── newwindow.png │ ├── icon_help_sml.gif │ ├── icon_info_sml.gif │ ├── icon_error_sml.gif │ ├── icon_success_sml.gif │ ├── icon_warning_sml.gif │ └── logos │ │ ├── maven-feather.png │ │ ├── build-by-maven-black.png │ │ └── build-by-maven-white.png ├── cobertura │ ├── images │ │ ├── blank.png │ │ ├── upsimple.png │ │ └── downsimple.png │ ├── js │ │ └── popup.js │ ├── css │ │ ├── help.css │ │ ├── tooltip.css │ │ ├── sortabletable.css │ │ └── source-viewer.css │ ├── frame-sourcefiles-org.fax4j.spi.mac.html │ ├── frame-sourcefiles-org.fax4j.spi.hoiio.html │ ├── frame-sourcefiles-org.fax4j.spi.linux.html │ ├── frame-sourcefiles-org.fax4j.spi.efax.html │ ├── frame-sourcefiles-org.fax4j.spi.phaxio.html │ ├── frame-sourcefiles-org.fax4j.spi.java4less.html │ ├── frame-sourcefiles-org.fax4j.spi.faxage.html │ ├── frame-sourcefiles-org.fax4j.spi.interfax.html │ ├── frame-sourcefiles-org.fax4j.spi.metrofax.html │ ├── frame-sourcefiles-org.fax4j.spi.send2fax.html │ ├── frame-sourcefiles-org.fax4j.spi.extremefax.html │ ├── frame-sourcefiles-org.fax4j.spi.nextivafax.html │ ├── frame-sourcefiles-org.fax4j.spi.adapter.html │ ├── frame-sourcefiles-org.fax4j.spi.vbs.html │ ├── index.html │ ├── frame-sourcefiles-org.fax4j.bridge.email.html │ ├── frame-sourcefiles-org.fax4j.bridge.process.html │ ├── help.html │ ├── frame-sourcefiles-org.fax4j.bridge.http.html │ ├── frame-sourcefiles-org.fax4j.spi.process.html │ └── frame-sourcefiles-org.fax4j.spi.hylafax.html ├── apidocs │ ├── package-list │ ├── script.js │ └── org │ │ └── fax4j │ │ ├── spi │ │ ├── mac │ │ │ └── package-frame.html │ │ ├── hoiio │ │ │ └── package-frame.html │ │ ├── linux │ │ │ └── package-frame.html │ │ ├── efax │ │ │ └── package-frame.html │ │ ├── phaxio │ │ │ └── package-frame.html │ │ ├── faxage │ │ │ └── package-frame.html │ │ ├── interfax │ │ │ └── package-frame.html │ │ ├── metrofax │ │ │ └── package-frame.html │ │ ├── send2fax │ │ │ └── package-frame.html │ │ ├── extremefax │ │ │ └── package-frame.html │ │ ├── nextivafax │ │ │ └── package-frame.html │ │ ├── adapter │ │ │ └── package-frame.html │ │ └── java4less │ │ │ └── package-frame.html │ │ └── bridge │ │ ├── email │ │ └── package-frame.html │ │ └── process │ │ └── package-frame.html ├── testapidocs │ ├── package-list │ ├── script.js │ ├── org │ │ └── fax4j │ │ │ ├── spi │ │ │ ├── mac │ │ │ │ └── package-frame.html │ │ │ ├── efax │ │ │ │ └── package-frame.html │ │ │ ├── hoiio │ │ │ │ └── package-frame.html │ │ │ ├── linux │ │ │ │ └── package-frame.html │ │ │ ├── phaxio │ │ │ │ └── package-frame.html │ │ │ ├── adapter │ │ │ │ └── package-frame.html │ │ │ ├── faxage │ │ │ │ └── package-frame.html │ │ │ ├── java4less │ │ │ │ └── package-frame.html │ │ │ ├── interfax │ │ │ │ └── package-frame.html │ │ │ ├── metrofax │ │ │ │ └── package-frame.html │ │ │ ├── send2fax │ │ │ │ └── package-frame.html │ │ │ ├── extremefax │ │ │ │ └── package-frame.html │ │ │ ├── nextivafax │ │ │ │ └── package-frame.html │ │ │ ├── process │ │ │ │ └── package-frame.html │ │ │ ├── vbs │ │ │ │ └── package-frame.html │ │ │ ├── email │ │ │ │ └── package-frame.html │ │ │ ├── comm │ │ │ │ └── package-frame.html │ │ │ └── hylafax │ │ │ │ └── package-frame.html │ │ │ ├── bridge │ │ │ ├── email │ │ │ │ └── package-frame.html │ │ │ ├── process │ │ │ │ └── package-frame.html │ │ │ └── http │ │ │ │ └── package-frame.html │ │ │ └── package-frame.html │ └── com │ │ └── java4less │ │ └── rfax │ │ └── package-frame.html ├── xref-test │ ├── org │ │ └── fax4j │ │ │ ├── spi │ │ │ ├── mac │ │ │ │ └── package-frame.html │ │ │ ├── hoiio │ │ │ │ └── package-frame.html │ │ │ ├── linux │ │ │ │ └── package-frame.html │ │ │ ├── efax │ │ │ │ └── package-frame.html │ │ │ ├── java4less │ │ │ │ └── package-frame.html │ │ │ ├── phaxio │ │ │ │ └── package-frame.html │ │ │ ├── adapter │ │ │ │ └── package-frame.html │ │ │ ├── faxage │ │ │ │ └── package-frame.html │ │ │ ├── interfax │ │ │ │ └── package-frame.html │ │ │ ├── metrofax │ │ │ │ └── package-frame.html │ │ │ ├── send2fax │ │ │ │ └── package-frame.html │ │ │ ├── extremefax │ │ │ │ └── package-frame.html │ │ │ ├── nextivafax │ │ │ │ └── package-frame.html │ │ │ ├── process │ │ │ │ └── package-frame.html │ │ │ ├── vbs │ │ │ │ └── package-frame.html │ │ │ ├── email │ │ │ │ └── package-frame.html │ │ │ └── comm │ │ │ │ └── package-frame.html │ │ │ └── bridge │ │ │ ├── email │ │ │ └── package-frame.html │ │ │ ├── process │ │ │ └── package-frame.html │ │ │ └── http │ │ │ └── package-frame.html │ └── com │ │ └── java4less │ │ └── rfax │ │ └── package-frame.html └── xref │ └── org │ └── fax4j │ ├── spi │ ├── mac │ │ └── package-frame.html │ ├── hoiio │ │ └── package-frame.html │ ├── linux │ │ └── package-frame.html │ ├── phaxio │ │ └── package-frame.html │ ├── efax │ │ └── package-frame.html │ ├── faxage │ │ └── package-frame.html │ ├── interfax │ │ └── package-frame.html │ ├── metrofax │ │ └── package-frame.html │ ├── send2fax │ │ └── package-frame.html │ ├── extremefax │ │ └── package-frame.html │ ├── nextivafax │ │ └── package-frame.html │ ├── adapter │ │ └── package-frame.html │ └── java4less │ │ └── package-frame.html │ └── bridge │ ├── email │ └── package-frame.html │ └── process │ └── package-frame.html ├── .gitignore ├── .github ├── dependabot.yml ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── workflows │ ├── publish.yml │ └── ci.yml └── CONTRIBUTING.md ├── .editorconfig └── Docs.html /.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/winxp_cancel_fax.vbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/winxp_resume_fax.vbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/winxp_suspend_fax.vbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/winxp_get_fax_job_status.vbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/css/site.css: -------------------------------------------------------------------------------- 1 | /* You can override this file with your own styles */ -------------------------------------------------------------------------------- /docs/images/add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/add.gif -------------------------------------------------------------------------------- /docs/images/fix.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/fix.gif -------------------------------------------------------------------------------- /docs/images/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/rss.png -------------------------------------------------------------------------------- /docs/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/close.gif -------------------------------------------------------------------------------- /docs/images/expanded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/expanded.gif -------------------------------------------------------------------------------- /docs/images/external.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/external.png -------------------------------------------------------------------------------- /docs/images/remove.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/remove.gif -------------------------------------------------------------------------------- /docs/images/update.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/update.gif -------------------------------------------------------------------------------- /docs/images/collapsed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/collapsed.gif -------------------------------------------------------------------------------- /docs/images/newwindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/newwindow.png -------------------------------------------------------------------------------- /docs/images/icon_help_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/icon_help_sml.gif -------------------------------------------------------------------------------- /docs/images/icon_info_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/icon_info_sml.gif -------------------------------------------------------------------------------- /docs/cobertura/images/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/cobertura/images/blank.png -------------------------------------------------------------------------------- /docs/images/icon_error_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/icon_error_sml.gif -------------------------------------------------------------------------------- /docs/cobertura/images/upsimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/cobertura/images/upsimple.png -------------------------------------------------------------------------------- /docs/images/icon_success_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/icon_success_sml.gif -------------------------------------------------------------------------------- /docs/images/icon_warning_sml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/icon_warning_sml.gif -------------------------------------------------------------------------------- /docs/cobertura/images/downsimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/cobertura/images/downsimple.png -------------------------------------------------------------------------------- /docs/images/logos/maven-feather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/logos/maven-feather.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | fax4j.iml 3 | core 4 | hs_err* 5 | target/ 6 | .classpath 7 | .project 8 | .settings/ 9 | .vscode/ 10 | -------------------------------------------------------------------------------- /docs/images/logos/build-by-maven-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/logos/build-by-maven-black.png -------------------------------------------------------------------------------- /docs/images/logos/build-by-maven-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sagiegurari/fax4j/master/docs/images/logos/build-by-maven-white.png -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/bridge/email/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the API classes for the email2fax bridge. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/adapter/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the adapter fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/efax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the efax based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/http/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the HTTP based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/hylafax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the HylaFAX fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/mac/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the native Mac fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/bridge/http/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the API classes for a HTTP based web2fax bridge. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/common/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Contains common internal classes used by the fax4j library. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/email/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the email based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/faxage/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the faxage based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/hoiio/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the hoiio based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/linux/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the native linux fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/phaxio/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the phaxio based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/vbs/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the VB script based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/util/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides general utilities used internally by the fax4j library. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/interfax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the interfax based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/java4less/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the java4less RFax fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/metrofax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the metrofax based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/send2fax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the send2fax based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/windows/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the native windows fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/extremefax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the extreme fax based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/nextivafax/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the nextivafax based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/comm/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the COMM port communication based fax client SPI implementation. 4 | 5 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/bridge/process/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the API classes for a standalone process based cli2fax bridge. 4 | 5 | -------------------------------------------------------------------------------- /src/main/native/windows/dll/fax4j_dll.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/main/native/windows/exe/fax4j_exe.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: maven 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: '03:00' 8 | open-pull-requests-limit: 99 9 | -------------------------------------------------------------------------------- /src/test/java/com/java4less/rfax/FaxProducer.java: -------------------------------------------------------------------------------- 1 | package com.java4less.rfax; 2 | 3 | /** 4 | * Test Class 5 | * 6 | * @author Sagie Gur-Ari 7 | */ 8 | public interface FaxProducer { 9 | // empty 10 | } -------------------------------------------------------------------------------- /docs/cobertura/js/popup.js: -------------------------------------------------------------------------------- 1 | var newwindow; 2 | function popupwindow(url) 3 | { 4 | newwindow=window.open(url,'name','height=500,width=500,resizable=yes,scrollbars=yes'); 5 | if (window.focus) { 6 | newwindow.focus() 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/process/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the process based fax client SPI implementation.
4 | These implementations use external executables/scripts to invoke fax actions. 5 | 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | indent_style = space 10 | indent_size = 4 11 | 12 | [*.json] 13 | indent_size = 2 14 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The fax4j library, is a standard on which java based applications can communicate with 4 | fax devices in order to submit new faxes or perform other related actions. 5 | 6 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/bridge/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the API classes for the fax client bridge.
4 | The fax4j bridge is used to transform applications to fax bridges for example an email server to provide email2fax functionality. 5 | 6 | -------------------------------------------------------------------------------- /Docs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ReadMe - fax4j 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/javadoc/org/fax4j/spi/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Provides the API classes for the fax client SPI.
4 | The class/interfaces defined in this package should only be used internally by the fax4j library 5 | or by classes implemeting a new fax client SPI. 6 | 7 | -------------------------------------------------------------------------------- /src/main/native/windows/exe/fax4jwrapper.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * fax4j native layer. 3 | * 4 | * @author Sagie Gur-Ari 5 | */ 6 | 7 | // fax4jwrapper.cpp : main project file. 8 | 9 | //fax4j dll API 10 | #include "fax4j.h" 11 | 12 | int main(int argc,const char* argv[]) 13 | { 14 | return runCLI(argc,argv); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/win2k_cancel_fax.vbs: -------------------------------------------------------------------------------- 1 | 2 | Dim faxJobIDStr 3 | faxJobIDStr="{1}" 4 | Dim faxJob 5 | faxJob=cint(faxJobIDStr) 6 | faxSetFaxJobStatusWin2k "{0}", faxJob, 1 7 | 8 | ''print output start 9 | ioPrintProcessOutputBeginText 10 | 11 | ''print output 12 | ioPrintText "fax.operation.done=true" 13 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/win2k_resume_fax.vbs: -------------------------------------------------------------------------------- 1 | 2 | Dim faxJobIDStr 3 | faxJobIDStr="{1}" 4 | Dim faxJob 5 | faxJob=cint(faxJobIDStr) 6 | faxSetFaxJobStatusWin2k "{0}", faxJob, 3 7 | 8 | ''print output start 9 | ioPrintProcessOutputBeginText 10 | 11 | ''print output 12 | ioPrintText "fax.operation.done=true" 13 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/win2k_suspend_fax.vbs: -------------------------------------------------------------------------------- 1 | 2 | Dim faxJobIDStr 3 | faxJobIDStr="{1}" 4 | Dim faxJob 5 | faxJob=cint(faxJobIDStr) 6 | faxSetFaxJobStatusWin2k "{0}", faxJob, 2 7 | 8 | ''print output start 9 | ioPrintProcessOutputBeginText 10 | 11 | ''print output 12 | ioPrintText "fax.operation.done=true" 13 | -------------------------------------------------------------------------------- /docs/cobertura/css/help.css: -------------------------------------------------------------------------------- 1 | dl { 2 | float: left; 3 | width: 100%; 4 | } 5 | 6 | dt { 7 | border-top: 1px solid #808080; 8 | float: left; 9 | font-weight: bold; 10 | margin: 0; 11 | padding: 1em; 12 | width: 20%; 13 | } 14 | 15 | dd { 16 | border-top: 1px solid #808080; 17 | float: left; 18 | font-style: italic; 19 | margin: 0; 20 | padding: 1em; 21 | width: 60%; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/email/MailConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.email; 2 | 3 | import org.fax4j.util.ConnectionFactory; 4 | 5 | /** 6 | * This class defines the mail connection factory. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.0 10 | * @since 0.39a 11 | */ 12 | public interface MailConnectionFactory extends ConnectionFactory { 13 | // empty (everything defined in parent interfaces) 14 | } -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/win2k_get_fax_job_status.vbs: -------------------------------------------------------------------------------- 1 | 2 | Dim faxJobIDStr 3 | faxJobIDStr="{1}" 4 | Dim faxJob 5 | faxJob=clng(faxJobIDStr) 6 | Dim status 7 | status=faxGetFaxJobStatusWin2k("{0}",faxJob) 8 | 9 | ''print output start 10 | ioPrintProcessOutputBeginText 11 | 12 | ''print output 13 | ioPrintText "fax.operation.done=true" 14 | Dim output 15 | output=utilStringConcat("fax.job.status=",status) 16 | ioPrintText output 17 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/comm/CommPortConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.comm; 2 | 3 | import org.fax4j.util.ConnectionFactory; 4 | 5 | /** 6 | * This class defines the COMM port connection factory. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.02 10 | * @since 0.34 11 | */ 12 | public interface CommPortConnectionFactory extends ConnectionFactory { 13 | // empty (everything defined in parent interfaces) 14 | } -------------------------------------------------------------------------------- /src/test/java/org/fax4j/ProductInfoTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j; 2 | 3 | import org.junit.Test; 4 | 5 | /** 6 | * Test Class 7 | * 8 | * @author Sagie Gur-Ari 9 | */ 10 | public class ProductInfoTest { 11 | /** 12 | * Test 13 | * 14 | * @throws Exception 15 | * Any exception 16 | */ 17 | @Test 18 | public void printProductInfoTest() throws Exception { 19 | ProductInfo.printProductInfo(); 20 | } 21 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: sagiegurari 7 | 8 | --- 9 | 10 | ### Feature Description 11 | 12 | 13 | ### Describe The Solution You'd Like 14 | 15 | 16 | ### Code Sample 17 | 18 | ```java 19 | // paste code here 20 | ``` 21 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/common/ProviderImplementation.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | import org.fax4j.Provider; 4 | 5 | /** 6 | * Defines the methods for classes that have a provider. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.0 10 | * @since 0.34 11 | */ 12 | public interface ProviderImplementation { 13 | /** 14 | * This function returns the provider. 15 | * 16 | * @return The provider 17 | */ 18 | Provider getProvider(); 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/com/java4less/rfax/TextFaxProducer.java: -------------------------------------------------------------------------------- 1 | package com.java4less.rfax; 2 | 3 | import java.awt.Image; 4 | 5 | /** 6 | * Test Class 7 | * 8 | * @author Sagie Gur-Ari 9 | */ 10 | public class TextFaxProducer implements FaxProducer { 11 | /** Class member */ 12 | public String text; 13 | /** Class member */ 14 | public Image pageImage; 15 | 16 | /** 17 | * Test method. 18 | */ 19 | public void prepare() { 20 | // empty 21 | } 22 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: sagiegurari 7 | 8 | --- 9 | 10 | ### Describe The Bug 11 | 12 | 13 | ### To Reproduce 14 | 15 | 16 | ### Error Stack 17 | 18 | ```console 19 | The error stack trace 20 | ``` 21 | 22 | ### Code Sample 23 | 24 | ```java 25 | // paste code here 26 | ``` 27 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/hylafax/HylaFAXClientConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.hylafax; 2 | 3 | import gnu.hylafax.HylaFAXClient; 4 | import org.fax4j.util.ConnectionFactory; 5 | 6 | /** 7 | * This interface defines the HaylaFAX connection factory. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.01 11 | * @since 0.39a 12 | */ 13 | public interface HylaFAXClientConnectionFactory extends ConnectionFactory { 14 | // empty (everything defined in parent interfaces) 15 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/bridge/email/MailMessageParser.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge.email; 2 | 3 | import javax.mail.Message; 4 | import org.fax4j.bridge.RequestParser; 5 | 6 | /** 7 | * This interface defines the mail message parser used to extract the fax job and file info from the email data. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.41.3 12 | */ 13 | public interface MailMessageParser extends RequestParser { 14 | // all capabilities defined in super interface 15 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/bridge/http/HTTPRequestParser.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge.http; 2 | 3 | import org.fax4j.bridge.RequestParser; 4 | import org.fax4j.spi.http.HTTPRequest; 5 | 6 | /** 7 | * This interface defines the HTTP parser used to extract the fax job and file info from the HTTP request. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.01 11 | * @since 0.40.6 12 | */ 13 | public interface HTTPRequestParser extends RequestParser { 14 | // all capabilities defined in super interface 15 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/bridge/process/CommandLineArgumentsParser.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge.process; 2 | 3 | import org.fax4j.bridge.RequestParser; 4 | 5 | /** 6 | * This interface defines the command line parser used to extract the fax job and file info from the command line 7 | * arguments. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.01 11 | * @since 0.40.6 12 | */ 13 | public interface CommandLineArgumentsParser extends RequestParser { 14 | // all capabilities defined in super interface 15 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/common/Initializable.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * Common interface for initializable components. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.0 10 | * @since 0.41.3 11 | */ 12 | public interface Initializable { 13 | /** 14 | * This function initializes the component. 15 | * 16 | * @param configuration 17 | * The component configuration 18 | */ 19 | void initialize(Map configuration); 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/util/Connection.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.util; 2 | 3 | import java.io.Closeable; 4 | 5 | /** 6 | * This class defines basic common connection capabilities. 7 | * 8 | * @param 9 | * The resource type 10 | * @author Sagie Gur-Ari 11 | * @version 1.01 12 | * @since 0.1 13 | */ 14 | public interface Connection extends Closeable { 15 | /** 16 | * This function returns the resource held by the connection. 17 | * 18 | * @return The resource held by the connection 19 | */ 20 | T getResource(); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/comm/AbstractCommPortAdapter.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.comm; 2 | 3 | import org.fax4j.util.AbstractCloseable; 4 | 5 | /** 6 | * This class provides partial implementation of the basic and common adapter capabilities. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.0 10 | * @since 0.39a 11 | */ 12 | public abstract class AbstractCommPortAdapter extends AbstractCloseable implements CommPortAdapter { 13 | /** 14 | * This is the class constructor. 15 | */ 16 | protected AbstractCommPortAdapter() { 17 | super(); 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/common/FaxActionType.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | /** 4 | * This is the fax action type enum. 5 | * 6 | * @author Sagie Gur-Ari 7 | * @version 1.01 8 | * @since 0.26 9 | */ 10 | public enum FaxActionType { 11 | /** The submit fax job action type */ 12 | SUBMIT_FAX_JOB, 13 | /** The suspend fax job action type */ 14 | SUSPEND_FAX_JOB, 15 | /** The resume fax job action type */ 16 | RESUME_FAX_JOB, 17 | /** The cancel fax job action type */ 18 | CANCEL_FAX_JOB, 19 | /** The get fax job status action type */ 20 | GET_FAX_JOB_STATUS 21 | } -------------------------------------------------------------------------------- /src/test/java/com/java4less/rfax/PDFFaxProducer.java: -------------------------------------------------------------------------------- 1 | package com.java4less.rfax; 2 | 3 | import java.awt.Image; 4 | 5 | /** 6 | * Test Class 7 | * 8 | * @author Sagie Gur-Ari 9 | */ 10 | public class PDFFaxProducer implements FaxProducer { 11 | /** Class member */ 12 | public Image pageImage; 13 | 14 | /** 15 | * Test method. 16 | * 17 | * @param value 18 | * Any value 19 | */ 20 | public void setPDFFile(String value) { 21 | if (value == null) { 22 | throw new IllegalArgumentException("PDF file is null."); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/common/Fax4JProvider.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | import org.fax4j.Provider; 4 | 5 | /** 6 | * This is the internal provider used by the internal fax4j SPI. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.01 10 | * @since 0.17 11 | */ 12 | public final class Fax4JProvider extends ProviderImpl { 13 | /** The fax4j provider */ 14 | public static final Provider FAX4J_PROVIDER = new Fax4JProvider(); 15 | 16 | /** 17 | * This is the class constructor. 18 | */ 19 | public Fax4JProvider() { 20 | super("fax4j", "Internal fax4j SPI."); 21 | } 22 | } -------------------------------------------------------------------------------- /src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/FaxMonitorEventListener.java: -------------------------------------------------------------------------------- 1 | package org.fax4j; 2 | 3 | import java.util.EventListener; 4 | 5 | /** 6 | * This interface defines the fax monitor event listener.
7 | * The listener picks up remote events based on changes done on the remote fax modem. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.40.2 12 | */ 13 | public interface FaxMonitorEventListener extends EventListener { 14 | /** 15 | * This function is invoked when the fax job status is changed. 16 | * 17 | * @param event 18 | * The fax event 19 | */ 20 | void faxJobStatusChanged(FaxMonitorEvent event); 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/Provider.java: -------------------------------------------------------------------------------- 1 | package org.fax4j; 2 | 3 | /** 4 | * This is the provider interface.
5 | * Each SPI enables access to the SPI provider by returning an instance of this interface. 6 | * 7 | * @author Sagie Gur-Ari 8 | * @version 1.0 9 | * @since 0.17 10 | */ 11 | public interface Provider { 12 | /** 13 | * This function returns the provider name, for example mycompany. 14 | * 15 | * @return The provider name 16 | */ 17 | String getName(); 18 | 19 | /** 20 | * This function returns the provider description. 21 | * 22 | * @return The provider description 23 | */ 24 | String getDescription(); 25 | } 26 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/common/LogLevelTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class LogLevelTest { 12 | /** 13 | * Test 14 | * 15 | * @throws Exception 16 | * Any exception 17 | */ 18 | @Test 19 | public void logLevelTest() throws Exception { 20 | Assert.assertTrue(LogLevel.NONE.getValue() > LogLevel.ERROR.getValue()); 21 | Assert.assertTrue(LogLevel.ERROR.getValue() > LogLevel.INFO.getValue()); 22 | Assert.assertTrue(LogLevel.INFO.getValue() > LogLevel.DEBUG.getValue()); 23 | } 24 | } -------------------------------------------------------------------------------- /docs/apidocs/package-list: -------------------------------------------------------------------------------- 1 | org.fax4j 2 | org.fax4j.bridge 3 | org.fax4j.bridge.email 4 | org.fax4j.bridge.http 5 | org.fax4j.bridge.process 6 | org.fax4j.common 7 | org.fax4j.spi 8 | org.fax4j.spi.adapter 9 | org.fax4j.spi.comm 10 | org.fax4j.spi.efax 11 | org.fax4j.spi.email 12 | org.fax4j.spi.extremefax 13 | org.fax4j.spi.faxage 14 | org.fax4j.spi.hoiio 15 | org.fax4j.spi.http 16 | org.fax4j.spi.hylafax 17 | org.fax4j.spi.interfax 18 | org.fax4j.spi.java4less 19 | org.fax4j.spi.linux 20 | org.fax4j.spi.mac 21 | org.fax4j.spi.metrofax 22 | org.fax4j.spi.nextivafax 23 | org.fax4j.spi.phaxio 24 | org.fax4j.spi.process 25 | org.fax4j.spi.send2fax 26 | org.fax4j.spi.vbs 27 | org.fax4j.spi.windows 28 | org.fax4j.util 29 | -------------------------------------------------------------------------------- /src/main/native/windows/dll/CMake/DefaultCXX.cmake: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/Default.cmake") 2 | 3 | set_config_specific_property("OUTPUT_DIRECTORY" "${CMAKE_SOURCE_DIR}$<$>:/${CMAKE_VS_PLATFORM_NAME}>/${PROPS_CONFIG}") 4 | 5 | if(MSVC) 6 | create_property_reader("DEFAULT_CXX_EXCEPTION_HANDLING") 7 | create_property_reader("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT") 8 | 9 | set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") 10 | set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc") 11 | set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi") 12 | endif() 13 | -------------------------------------------------------------------------------- /src/main/native/windows/exe/CMake/DefaultCXX.cmake: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/Default.cmake") 2 | 3 | set_config_specific_property("OUTPUT_DIRECTORY" "${CMAKE_SOURCE_DIR}$<$>:/${CMAKE_VS_PLATFORM_NAME}>/${PROPS_CONFIG}") 4 | 5 | if(MSVC) 6 | create_property_reader("DEFAULT_CXX_EXCEPTION_HANDLING") 7 | create_property_reader("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT") 8 | 9 | set_target_properties("${PROPS_TARGET}" PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") 10 | set_config_specific_property("DEFAULT_CXX_EXCEPTION_HANDLING" "/EHsc") 11 | set_config_specific_property("DEFAULT_CXX_DEBUG_INFORMATION_FORMAT" "/Zi") 12 | endif() 13 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish 2 | on: 3 | repository_dispatch: 4 | types: [publish] 5 | jobs: 6 | release: 7 | name: Release 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Check out Git repository 11 | uses: actions/checkout@v2 12 | - name: Set up Maven Central Repository 13 | uses: actions/setup-java@v1 14 | with: 15 | java-version: 1.8 16 | server-id: ossrh 17 | server-username: MAVEN_USERNAME 18 | server-password: MAVEN_PASSWORD 19 | - name: Publish package 20 | run: mvn -B deploy 21 | env: 22 | MAVEN_USERNAME: ${{ secrets.nexus_username }} 23 | MAVEN_PASSWORD: ${{ secrets.nexus_password }} 24 | -------------------------------------------------------------------------------- /docs/testapidocs/package-list: -------------------------------------------------------------------------------- 1 | com.java4less.rfax 2 | org.fax4j 3 | org.fax4j.bridge 4 | org.fax4j.bridge.email 5 | org.fax4j.bridge.http 6 | org.fax4j.bridge.process 7 | org.fax4j.common 8 | org.fax4j.spi 9 | org.fax4j.spi.adapter 10 | org.fax4j.spi.comm 11 | org.fax4j.spi.efax 12 | org.fax4j.spi.email 13 | org.fax4j.spi.extremefax 14 | org.fax4j.spi.faxage 15 | org.fax4j.spi.hoiio 16 | org.fax4j.spi.http 17 | org.fax4j.spi.hylafax 18 | org.fax4j.spi.interfax 19 | org.fax4j.spi.java4less 20 | org.fax4j.spi.linux 21 | org.fax4j.spi.mac 22 | org.fax4j.spi.metrofax 23 | org.fax4j.spi.nextivafax 24 | org.fax4j.spi.phaxio 25 | org.fax4j.spi.process 26 | org.fax4j.spi.send2fax 27 | org.fax4j.spi.vbs 28 | org.fax4j.spi.windows 29 | org.fax4j.test 30 | org.fax4j.util 31 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/common/Service.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | /** 4 | * Common interface for services.
5 | * Services have common initialization and setup process. 6 | * 7 | * @author Sagie Gur-Ari 8 | * @version 1.01 9 | * @since 0.42.4 10 | */ 11 | public interface Service extends ProviderImplementation, Initializable, ConfigurationHolder { 12 | /*** 13 | * This function sets the property part value.
14 | * This function should be called before the initialize method.
15 | * See org.fax4j.common.ConfigurationHolder.getPropertyPart() for more info. 16 | * 17 | * @param propertyPart 18 | * The property part value 19 | */ 20 | void setPropertyPart(String propertyPart); 21 | } 22 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.mac.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.mac 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
MacFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/efax/EFaxMailFaxClientSpiTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.efax; 2 | 3 | import org.fax4j.spi.efax.EFaxMailFaxClientSpi.FaxClientSpiConfigurationConstants; 4 | import org.fax4j.test.TestUtil.PredefinedMailFaxClientSpiTest; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class EFaxMailFaxClientSpiTest extends PredefinedMailFaxClientSpiTest { 12 | /** 13 | * This is the class constructor. 14 | */ 15 | public EFaxMailFaxClientSpiTest() { 16 | super(EFaxMailFaxClientSpi.class.getName(), 17 | FaxClientSpiConfigurationConstants.MAIL_ADDRESS_TEMPLATE_VALUE.toString(), 18 | FaxClientSpiConfigurationConstants.MAIL_SUBJECT_TEMPLATE_VALUE.toString()); 19 | } 20 | } -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.hoiio.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.hoiio 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
HoiioFaxClientSpi (95%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.linux.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.linux 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
LinuxFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/http/AbstractFaxJob2HTTPRequestConverter.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.http; 2 | 3 | import org.fax4j.Provider; 4 | import org.fax4j.common.AbstractService; 5 | 6 | /** 7 | * This class provides partial implementation of the fax job to HTTP request converter interface. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.42.4 12 | */ 13 | public abstract class AbstractFaxJob2HTTPRequestConverter extends AbstractService 14 | implements FaxJob2HTTPRequestConverter { 15 | /** 16 | * This is the default constructor. 17 | * 18 | * @param provider 19 | * The provider 20 | */ 21 | public AbstractFaxJob2HTTPRequestConverter(Provider provider) { 22 | super(provider); 23 | } 24 | } -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.efax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.efax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
EFaxMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.phaxio.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.phaxio 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
PhaxioFaxClientSpi (96%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.java4less.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.java4less 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
RFaxFaxClientSpi (87%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/faxage/FaxAgeMailFaxClientSpiTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.faxage; 2 | 3 | import org.fax4j.spi.faxage.FaxAgeMailFaxClientSpi.FaxClientSpiConfigurationConstants; 4 | import org.fax4j.test.TestUtil.PredefinedMailFaxClientSpiTest; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class FaxAgeMailFaxClientSpiTest extends PredefinedMailFaxClientSpiTest { 12 | /** 13 | * This is the class constructor. 14 | */ 15 | public FaxAgeMailFaxClientSpiTest() { 16 | super(FaxAgeMailFaxClientSpi.class.getName(), 17 | FaxClientSpiConfigurationConstants.MAIL_ADDRESS_TEMPLATE_VALUE.toString(), 18 | FaxClientSpiConfigurationConstants.MAIL_SUBJECT_TEMPLATE_VALUE.toString()); 19 | } 20 | } -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.faxage.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.faxage 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
FaxAgeMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.interfax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.interfax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
InterfaxMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.metrofax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.metrofax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
MetroFaxMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.send2fax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.send2fax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
Send2FaxMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/metrofax/MetroFaxMailFaxClientSpiTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.metrofax; 2 | 3 | import org.fax4j.spi.metrofax.MetroFaxMailFaxClientSpi.FaxClientSpiConfigurationConstants; 4 | import org.fax4j.test.TestUtil.PredefinedMailFaxClientSpiTest; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class MetroFaxMailFaxClientSpiTest extends PredefinedMailFaxClientSpiTest { 12 | /** 13 | * This is the class constructor. 14 | */ 15 | public MetroFaxMailFaxClientSpiTest() { 16 | super(MetroFaxMailFaxClientSpi.class.getName(), 17 | FaxClientSpiConfigurationConstants.MAIL_ADDRESS_TEMPLATE_VALUE.toString(), 18 | FaxClientSpiConfigurationConstants.MAIL_SUBJECT_TEMPLATE_VALUE.toString()); 19 | } 20 | } -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/send2fax/Send2FaxMailFaxClientSpiTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.send2fax; 2 | 3 | import org.fax4j.spi.send2fax.Send2FaxMailFaxClientSpi.FaxClientSpiConfigurationConstants; 4 | import org.fax4j.test.TestUtil.PredefinedMailFaxClientSpiTest; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class Send2FaxMailFaxClientSpiTest extends PredefinedMailFaxClientSpiTest { 12 | /** 13 | * This is the class constructor. 14 | */ 15 | public Send2FaxMailFaxClientSpiTest() { 16 | super(Send2FaxMailFaxClientSpi.class.getName(), 17 | FaxClientSpiConfigurationConstants.MAIL_ADDRESS_TEMPLATE_VALUE.toString(), 18 | FaxClientSpiConfigurationConstants.MAIL_SUBJECT_TEMPLATE_VALUE.toString()); 19 | } 20 | } -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.extremefax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.extremefax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
ExtremeFaxMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.nextivafax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.nextivafax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 |
NextivafaxMailFaxClientSpi (100%)
22 | 23 | 24 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/extremefax/ExtremeFaxMailFaxClientSpiTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.extremefax; 2 | 3 | import org.fax4j.spi.extremefax.ExtremeFaxMailFaxClientSpi.FaxClientSpiConfigurationConstants; 4 | import org.fax4j.test.TestUtil.PredefinedMailFaxClientSpiTest; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class ExtremeFaxMailFaxClientSpiTest extends PredefinedMailFaxClientSpiTest { 12 | /** 13 | * This is the class constructor. 14 | */ 15 | public ExtremeFaxMailFaxClientSpiTest() { 16 | super(ExtremeFaxMailFaxClientSpi.class.getName(), 17 | FaxClientSpiConfigurationConstants.MAIL_ADDRESS_TEMPLATE_VALUE.toString(), 18 | FaxClientSpiConfigurationConstants.MAIL_SUBJECT_TEMPLATE_VALUE.toString()); 19 | } 20 | } -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/nextivafax/NextivafaxMailFaxClientSpiTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.nextivafax; 2 | 3 | import org.fax4j.spi.nextivafax.NextivafaxMailFaxClientSpi.FaxClientSpiConfigurationConstants; 4 | import org.fax4j.test.TestUtil.PredefinedMailFaxClientSpiTest; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class NextivafaxMailFaxClientSpiTest extends PredefinedMailFaxClientSpiTest { 12 | /** 13 | * This is the class constructor. 14 | */ 15 | public NextivafaxMailFaxClientSpiTest() { 16 | super(NextivafaxMailFaxClientSpi.class.getName(), 17 | FaxClientSpiConfigurationConstants.MAIL_ADDRESS_TEMPLATE_VALUE.toString(), 18 | FaxClientSpiConfigurationConstants.MAIL_SUBJECT_TEMPLATE_VALUE.toString()); 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/native/windows/dll/CMake/DefaultFortran.cmake: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/Default.cmake") 2 | 3 | set_config_specific_property("OUTPUT_DIRECTORY" "${CMAKE_CURRENT_SOURCE_DIR}$<$>:/${CMAKE_VS_PLATFORM_NAME}>/${PROPS_CONFIG}") 4 | 5 | get_target_property(${PROPS_TARGET}_BINARY_DIR ${PROPS_TARGET} BINARY_DIR) 6 | set(DEFAULT_FORTRAN_MODULES_DIR "${${PROPS_TARGET}_BINARY_DIR}/${PROPS_TARGET}.Modules.dir") 7 | set_target_properties(${PROPS_TARGET} PROPERTIES Fortran_MODULE_DIRECTORY ${DEFAULT_FORTRAN_MODULES_DIR}) 8 | 9 | if(${CMAKE_GENERATOR} MATCHES "Visual Studio") 10 | # Hack for visual studio generator (https://gitlab.kitware.com/cmake/cmake/issues/19552) 11 | add_custom_command(TARGET ${PROPS_TARGET} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory $/${CMAKE_CFG_INTDIR}) 12 | endif() -------------------------------------------------------------------------------- /src/main/native/windows/exe/CMake/DefaultFortran.cmake: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/Default.cmake") 2 | 3 | set_config_specific_property("OUTPUT_DIRECTORY" "${CMAKE_CURRENT_SOURCE_DIR}$<$>:/${CMAKE_VS_PLATFORM_NAME}>/${PROPS_CONFIG}") 4 | 5 | get_target_property(${PROPS_TARGET}_BINARY_DIR ${PROPS_TARGET} BINARY_DIR) 6 | set(DEFAULT_FORTRAN_MODULES_DIR "${${PROPS_TARGET}_BINARY_DIR}/${PROPS_TARGET}.Modules.dir") 7 | set_target_properties(${PROPS_TARGET} PROPERTIES Fortran_MODULE_DIRECTORY ${DEFAULT_FORTRAN_MODULES_DIR}) 8 | 9 | if(${CMAKE_GENERATOR} MATCHES "Visual Studio") 10 | # Hack for visual studio generator (https://gitlab.kitware.com/cmake/cmake/issues/19552) 11 | add_custom_command(TARGET ${PROPS_TARGET} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory $/${CMAKE_CFG_INTDIR}) 12 | endif() -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/comm/CommPortAdapter.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.comm; 2 | 3 | import java.io.Closeable; 4 | import java.io.InputStream; 5 | import java.io.OutputStream; 6 | 7 | /** 8 | * This class defines the COMM port adapter. 9 | * 10 | * @author Sagie Gur-Ari 11 | * @version 1.0 12 | * @since 0.39a 13 | */ 14 | public interface CommPortAdapter extends Closeable { 15 | /** 16 | * Returns true if the adapter is valid and open. 17 | * 18 | * @return Ttrue if the adapter is valid and open 19 | */ 20 | boolean isOpen(); 21 | 22 | /** 23 | * This function returns the input stream to the COMM port. 24 | * 25 | * @return The input stream 26 | */ 27 | InputStream getInputStream(); 28 | 29 | /** 30 | * This function returns the output stream to the COMM port. 31 | * 32 | * @return The output stream 33 | */ 34 | OutputStream getOutputStream(); 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/util/AbstractFax4JConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.util; 2 | 3 | import org.fax4j.Provider; 4 | import org.fax4j.common.Fax4JProvider; 5 | 6 | /** 7 | * This class provides the basic common connection factory capabilities. This class should only be used by internal 8 | * fax4j connection factories. 9 | * 10 | * @param 11 | * The resource type 12 | * @author Sagie Gur-Ari 13 | * @version 1.0 14 | * @since 0.39a 15 | */ 16 | public abstract class AbstractFax4JConnectionFactory extends AbstractConnectionFactory { 17 | /** 18 | * This is the class constructor. 19 | */ 20 | public AbstractFax4JConnectionFactory() { 21 | super(); 22 | } 23 | 24 | /** 25 | * This function returns the provider. 26 | * 27 | * @return The provider 28 | */ 29 | public final Provider getProvider() { 30 | return Fax4JProvider.FAX4J_PROVIDER; 31 | } 32 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/FaxException.java: -------------------------------------------------------------------------------- 1 | package org.fax4j; 2 | 3 | /** 4 | * A general exception class used by the fax4j framework. 5 | * 6 | * @author Sagie Gur-Ari 7 | * @version 1.03 8 | * @since 0.1 9 | */ 10 | public class FaxException extends RuntimeException { 11 | /** Default serialization UID */ 12 | private static final long serialVersionUID = 1L; 13 | 14 | /** 15 | * This is the default constructor. 16 | * 17 | * @param message 18 | * The error message 19 | */ 20 | public FaxException(String message) { 21 | super(message); 22 | } 23 | 24 | /** 25 | * This is the default constructor. 26 | * 27 | * @param message 28 | * The error message 29 | * @param cause 30 | * The root cause of the exception 31 | */ 32 | public FaxException(String message, Throwable cause) { 33 | super(message, cause); 34 | } 35 | } -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.adapter.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.adapter 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
AbstractAdapterFaxClientSpi (42%)
AdapterFaxClientSpi (96%)
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/apidocs/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/comm/AbstractFax4JFaxModemAdapter.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.comm; 2 | 3 | import org.fax4j.Provider; 4 | import org.fax4j.common.Fax4JProvider; 5 | 6 | /** 7 | * This class provides partial/common functionlity of the fax modem adapter interface.
8 | * This class should be used only by internal fax4j implementation and not by implementations written by external 9 | * vendors. 10 | * 11 | * @author Sagie Gur-Ari 12 | * @version 1.0 13 | * @since 0.38 14 | */ 15 | public abstract class AbstractFax4JFaxModemAdapter extends AbstractFaxModemAdapter { 16 | /** 17 | * This is the class constructor. 18 | */ 19 | public AbstractFax4JFaxModemAdapter() { 20 | super(); 21 | } 22 | 23 | /** 24 | * This function returns the provider. 25 | * 26 | * @return The provider 27 | */ 28 | public final Provider getProvider() { 29 | return Fax4JProvider.FAX4J_PROVIDER; 30 | } 31 | } -------------------------------------------------------------------------------- /docs/testapidocs/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/native/windows/exe/fax4j_exe.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fax4j_exe", "fax4j_exe.vcxproj", "{84CC2BEF-35A7-45A7-9090-A7802C424783}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Release|Win32 = Release|Win32 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {84CC2BEF-35A7-45A7-9090-A7802C424783}.Debug|Win32.ActiveCfg = Debug|Win32 13 | {84CC2BEF-35A7-45A7-9090-A7802C424783}.Debug|Win32.Build.0 = Debug|Win32 14 | {84CC2BEF-35A7-45A7-9090-A7802C424783}.Release|Win32.ActiveCfg = Release|Win32 15 | {84CC2BEF-35A7-45A7-9090-A7802C424783}.Release|Win32.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/AbstractFaxEvent.java: -------------------------------------------------------------------------------- 1 | package org.fax4j; 2 | 3 | import java.util.EventObject; 4 | 5 | /** 6 | * Base class for all fax4j events. 7 | * 8 | * @author Sagie Gur-Ari 9 | * @version 1.0 10 | * @since 0.40.5 11 | */ 12 | public abstract class AbstractFaxEvent extends EventObject { 13 | /** The fax job */ 14 | private final transient FaxJob FAX_JOB; 15 | /** Default serialization UID */ 16 | private static final long serialVersionUID = 1L; 17 | 18 | /** 19 | * This is the class constructor. 20 | * 21 | * @param faxJob 22 | * The fax job 23 | */ 24 | public AbstractFaxEvent(FaxJob faxJob) { 25 | super(faxJob); 26 | 27 | // get fax job 28 | this.FAX_JOB = faxJob; 29 | } 30 | 31 | /** 32 | * This function returns the fax job. 33 | * 34 | * @return The fax job 35 | */ 36 | public final FaxJob getFaxJob() { 37 | return this.FAX_JOB; 38 | } 39 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/http/FaxJob2HTTPRequestConverter.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.http; 2 | 3 | import org.fax4j.FaxJob; 4 | import org.fax4j.common.FaxActionType; 5 | import org.fax4j.common.Service; 6 | 7 | /** 8 | * The fax job to HTTP request converter interface enables to convert fax jobs to HTTP requests which will be submitted 9 | * to invoke the fax action remotly. 10 | * 11 | * @author Sagie Gur-Ari 12 | * @version 1.0 13 | * @since 0.42.4 14 | */ 15 | public interface FaxJob2HTTPRequestConverter extends Service { 16 | /** 17 | * Creates the HTTP request from the fax job data. 18 | * 19 | * @param faxClientSpi 20 | * The HTTP fax client SPI 21 | * @param faxActionType 22 | * The fax action type 23 | * @param faxJob 24 | * The fax job object 25 | * @return The HTTP request to send 26 | */ 27 | HTTPRequest createHTTPRequest(HTTPFaxClientSpi faxClientSpi, FaxActionType faxActionType, FaxJob faxJob); 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/process/ProcessOutputValidator.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.process; 2 | 3 | import org.fax4j.common.FaxActionType; 4 | import org.fax4j.spi.FaxClientSpi; 5 | import org.fax4j.util.ProcessExecutorHelper.ProcessOutput; 6 | 7 | /** 8 | * This interface defines the process output validator which is used to validate if the process ended correctly. 9 | * 10 | * @author Sagie Gur-Ari 11 | * @version 1.0 12 | * @since 0.26 13 | */ 14 | public interface ProcessOutputValidator { 15 | /** 16 | * This function validates the process output for errors.
17 | * If not valid, an exception should be thrown. 18 | * 19 | * @param faxClientSpi 20 | * The fax client SPI 21 | * @param processOutput 22 | * The process output to validate 23 | * @param faxActionType 24 | * The fax action type 25 | */ 26 | void validateProcessOutput(FaxClientSpi faxClientSpi, ProcessOutput processOutput, FaxActionType faxActionType); 27 | } 28 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/util/ProcessExecutorHelperTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.util; 2 | 3 | import org.fax4j.spi.FaxClientSpi; 4 | import org.fax4j.test.TestUtil.EmptyFaxClientSpi; 5 | import org.fax4j.util.ProcessExecutorHelper.ProcessOutput; 6 | import org.junit.Assert; 7 | import org.junit.Test; 8 | 9 | /** 10 | * Test Class 11 | * 12 | * @author Sagie Gur-Ari 13 | */ 14 | public class ProcessExecutorHelperTest { 15 | /** 16 | * Test 17 | * 18 | * @throws Exception 19 | * Any exception 20 | */ 21 | @Test 22 | public void executeProcessTest() throws Exception { 23 | final String command = "echo"; 24 | FaxClientSpi faxClientSpi = new EmptyFaxClientSpi(true); 25 | ProcessOutput processOutput = ProcessExecutorHelper.executeProcess(faxClientSpi, command); 26 | Assert.assertNotNull(processOutput); 27 | Assert.assertEquals(0, processOutput.getExitCode()); 28 | Assert.assertNotNull(processOutput.getOutputText()); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/cobertura/css/tooltip.css: -------------------------------------------------------------------------------- 1 | a.hastooltip { 2 | border-bottom: 1px dotted #00aa00; 3 | color: #000000; 4 | cursor: help; 5 | font-style: normal; 6 | position: relative; /* This is the key */ 7 | text-decoration: none; 8 | z-index: 24; /* What does this do? */ 9 | } 10 | 11 | a.hastooltip:active { 12 | color: #000000; 13 | text-decoration: none; 14 | } 15 | 16 | a.hastooltip:link { 17 | color: #000000; 18 | text-decoration: none; 19 | } 20 | 21 | a.hastooltip:hover { 22 | background-color: #a0b8ff; 23 | color: #000000; 24 | text-decoration: none; 25 | z-index: 25; 26 | } 27 | 28 | a.hastooltip:visited { 29 | color: #000000; 30 | text-decoration: none; 31 | } 32 | 33 | a.hastooltip span { 34 | display: none; 35 | } 36 | 37 | a.hastooltip:hover span { 38 | background-color: #eeeeee; 39 | border: 1px solid #000000; 40 | color: #000000; 41 | display: block; 42 | padding: 5px; 43 | left: -15.2em; 44 | position: absolute; 45 | text-align: center; 46 | text-decoration: none; 47 | top: 2em; 48 | width: 20em; 49 | } 50 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/mac/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.mac (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.mac

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/efax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.efax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.efax

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/hoiio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.hoiio (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.hoiio

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/linux/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.linux (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.linux

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/spi/http/HTTPResponseTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.http; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | 6 | /** 7 | * Test Class 8 | * 9 | * @author Sagie Gur-Ari 10 | */ 11 | public class HTTPResponseTest { 12 | /** 13 | * Test 14 | * 15 | * @throws Exception 16 | * Any exception 17 | */ 18 | @Test 19 | public void getContentTest() throws Exception { 20 | HTTPResponse response = new HTTPResponse(); 21 | response.setContent("123"); 22 | String output = response.getContent(); 23 | Assert.assertEquals("123", output); 24 | } 25 | 26 | /** 27 | * Test 28 | * 29 | * @throws Exception 30 | * Any exception 31 | */ 32 | @Test 33 | public void getStatusCodeTest() throws Exception { 34 | HTTPResponse response = new HTTPResponse(); 35 | response.setStatusCode(123); 36 | int output = response.getStatusCode(); 37 | Assert.assertEquals(123, output); 38 | } 39 | } -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/phaxio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.phaxio (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.phaxio

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/native/windows/exe/fax4j_exe.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/adapter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.adapter (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.adapter

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/faxage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.faxage (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.faxage

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/mac/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.mac 8 | 9 | 10 | 11 |

org.fax4j.spi.mac

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/FaxJobStatus.java: -------------------------------------------------------------------------------- 1 | package org.fax4j; 2 | 3 | /** 4 | * This is the fax job status enum which holds the possible fax status values.
5 | * Not all SPIs support extraction of the fax job status.
6 | * In case the SPI is unable to extract or does not support extracting of the fax job status, it will return the UNKNOWN 7 | * status. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.21b 12 | */ 13 | public enum FaxJobStatus { 14 | /** The 'Unknown' status */ 15 | UNKNOWN, 16 | /** 17 | * The 'Pending' status - in case fax job has not been submitted yet by the fax server but it is still in the 18 | * queue.
19 | * Suspended fax jobs are also considered as pending. 20 | */ 21 | PENDING, 22 | /** 23 | * The 'In Progress' status - in case the fax server is currently handling the fax job 24 | */ 25 | IN_PROGRESS, 26 | /** 27 | * The 'Error' status - in case there was an error during the fax server attempt to submit the fax job. 28 | */ 29 | ERROR 30 | } -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/java4less/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.java4less (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.java4less

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/util/AbstractCloseable.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.util; 2 | 3 | import java.io.Closeable; 4 | import java.io.IOException; 5 | 6 | /** 7 | * Defines a basic closable class which prevents errors from being thrown during the close invocation. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.33 12 | */ 13 | public abstract class AbstractCloseable implements Closeable { 14 | /** 15 | * This is the class constructor. 16 | */ 17 | protected AbstractCloseable() { 18 | super(); 19 | } 20 | 21 | /** 22 | * Closes the connection. 23 | * 24 | * @throws IOException 25 | * Never thrown 26 | */ 27 | public final synchronized void close() throws IOException { 28 | try { 29 | // close connection 30 | this.closeImpl(); 31 | } catch (Exception exception) { // NOPMD 32 | // ignore 33 | } 34 | } 35 | 36 | /** 37 | * Closes the connection. 38 | */ 39 | protected abstract void closeImpl(); 40 | } 41 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/hoiio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.hoiio 8 | 9 | 10 | 11 |

org.fax4j.spi.hoiio

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/linux/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.linux 8 | 9 | 10 | 11 |

org.fax4j.spi.linux

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/interfax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.interfax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.interfax

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/metrofax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.metrofax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.metrofax

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/send2fax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.send2fax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.send2fax

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | 4 | ## Issues 5 | 6 | Found a bug? Got a question? Want some enhancement?
7 | First place to go is the repository issues section, and I'll try to help as much as possible. 8 | However, keep in mind that currently this project is not very active. 9 | 10 | ## Pull Requests 11 | 12 | Fixed a bug or just want to provided additional functionality?
13 | Simply fork this repository, implement your changes and create a pull request.
14 | Few guidelines regarding pull requests: 15 | 16 | * This repository is integrated with github actions for continuous integration.
17 | 18 | Your pull request build must pass (the build will run automatically).
19 | You can run the following command locally to ensure the build will pass: 20 | 21 | ````sh 22 | mvn clean install 23 | ```` 24 | 25 | * There are many automatic unit tests as part of the library which provide full coverage of the functionality.
Any fix/enhancement must come with a set of tests to ensure it's working well. 26 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/efax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.efax 8 | 9 | 10 | 11 |

org.fax4j.spi.efax

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/java4less/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.java4less 8 | 9 | 10 | 11 |

org.fax4j.spi.java4less

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/phaxio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.phaxio 8 | 9 | 10 | 11 |

org.fax4j.spi.phaxio

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/common/SimpleLogger.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.common; 2 | 3 | /** 4 | * This is a basic implementation of the logger.
5 | * It enables to print the output to the system out stream. 6 | * 7 | * @author Sagie Gur-Ari 8 | * @version 1.05 9 | * @since 0.1 10 | */ 11 | public class SimpleLogger extends AbstractLogger { 12 | /** 13 | * This is the default constructor. 14 | */ 15 | public SimpleLogger() { 16 | super(); 17 | } 18 | 19 | /** 20 | * Logs the provided data. 21 | * 22 | * @param level 23 | * The log level 24 | * @param message 25 | * The message parts (may be null) 26 | * @param throwable 27 | * The error (may be null) 28 | */ 29 | @Override 30 | protected void logImpl(LogLevel level, Object[] message, Throwable throwable) { 31 | // format log message 32 | String text = this.formatLogMessage(level, message, throwable); 33 | 34 | // print text to system out 35 | System.out.println(text); 36 | } 37 | } -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/adapter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.adapter 8 | 9 | 10 | 11 |

org.fax4j.spi.adapter

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.vbs.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.vbs 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
VBSFaxClientSpi (60%)
VBSProcessOutputHandler (100%)
VBSProcessOutputValidator (96%)
28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/extremefax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.extremefax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.extremefax

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/nextivafax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.nextivafax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.nextivafax

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/faxage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.faxage 8 | 9 | 10 | 11 |

org.fax4j.spi.faxage

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/cobertura/index.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Coverage Report 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | <body> 19 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a frame-incapable web client.</p> 20 | <p><a href="frame-summary.html">Click here to view a non-frame version.</a></p> 21 | </body> 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/interfax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.interfax 8 | 9 | 10 | 11 |

org.fax4j.spi.interfax

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/metrofax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.metrofax 8 | 9 | 10 | 11 |

org.fax4j.spi.metrofax

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/send2fax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.send2fax 8 | 9 | 10 | 11 |

org.fax4j.spi.send2fax

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.bridge.email.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.bridge.email 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
DefaultMailMessageParser (89%)
EMail2FaxBridge (100%)
MailMessageParser (N/A)
28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/extremefax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.extremefax 8 | 9 | 10 | 11 |

org.fax4j.spi.extremefax

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/nextivafax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.nextivafax 8 | 9 | 10 | 11 |

org.fax4j.spi.nextivafax

12 |
13 |

Classes

14 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/bridge/RequestParser.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge; 2 | 3 | import org.fax4j.FaxJob; 4 | import org.fax4j.common.Initializable; 5 | 6 | /** 7 | * This interface defines the fax bridge request parser used to extract the fax job and file info from the input data. 8 | * 9 | * @param 10 | * The request type 11 | * @author Sagie Gur-Ari 12 | * @version 1.0 13 | * @since 0.41.3 14 | */ 15 | public interface RequestParser extends Initializable { 16 | /** 17 | * This function returns the file info from the input data. 18 | * 19 | * @param inputData 20 | * The input data 21 | * @return The file info 22 | */ 23 | FileInfo getFileInfoFromInputData(T inputData); 24 | 25 | /** 26 | * This function update the fax job from the input data.
27 | * This fax job will not have any file data. 28 | * 29 | * @param inputData 30 | * The input data 31 | * @param faxJob 32 | * The fax job to update 33 | */ 34 | void updateFaxJobFromInputData(T inputData, FaxJob faxJob); 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/util/ConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.util; 2 | 3 | import org.fax4j.common.ConfigurationHolder; 4 | import org.fax4j.common.ProviderImplementation; 5 | 6 | /** 7 | * This class defines the basic common connection factory capabilities. 8 | * 9 | * @param 10 | * The resource type 11 | * @author Sagie Gur-Ari 12 | * @version 1.01 13 | * @since 0.39a 14 | */ 15 | public interface ConnectionFactory extends ProviderImplementation { 16 | /** 17 | * This function initializes the connection factory. 18 | * 19 | * @param configurationHolder 20 | * The configuration holder 21 | */ 22 | void initialize(ConfigurationHolder configurationHolder); 23 | 24 | /** 25 | * Creates and returns the connection to be used. 26 | * 27 | * @return The connection 28 | */ 29 | Connection createConnection(); 30 | 31 | /** 32 | * Releases the connection. 33 | * 34 | * @param connection 35 | * The connection 36 | */ 37 | void releaseConnection(Connection connection); 38 | } 39 | -------------------------------------------------------------------------------- /docs/css/print.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn { 21 | display: none !important; 22 | } 23 | #bodyColumn, body.docs div.docs { 24 | margin: 0 !important; 25 | border: none !important 26 | } 27 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.bridge.process.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.bridge.process 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
CommandLineArgumentsParser (N/A)
DefaultCommandLineArgumentsParser (100%)
Process2FaxBridge (100%)
28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/cobertura/css/sortabletable.css: -------------------------------------------------------------------------------- 1 | .sort-table { 2 | font: Icon; 3 | border: 1px Solid ThreeDShadow; 4 | background: Window; 5 | color: WindowText; 6 | } 7 | 8 | .sort-table thead { 9 | background: ButtonFace; 10 | } 11 | 12 | .sort-table td { 13 | padding: 2px 5px; 14 | } 15 | 16 | .sort-table thead td { 17 | border: 1px solid; 18 | border-color: ButtonHighlight ButtonShadow 19 | ButtonShadow ButtonHighlight; 20 | cursor: default; 21 | } 22 | 23 | .sort-table thead td:active { 24 | border-color: ButtonShadow ButtonHighlight 25 | ButtonHighlight ButtonShadow; 26 | padding: 3px 4px 1px 6px; 27 | } 28 | 29 | .sort-table thead td[_sortType=None]:active { 30 | border-color: ButtonHighlight ButtonShadow 31 | ButtonShadow ButtonHighlight; 32 | padding: 2px 5px; 33 | } 34 | 35 | .sort-arrow { 36 | width: 11px; 37 | height: 11px; 38 | background-position: center center; 39 | background-repeat: no-repeat; 40 | margin: 0 2px; 41 | } 42 | 43 | .sort-arrow.descending { 44 | background-image: url("../images/downsimple.png"); 45 | 46 | } 47 | 48 | .sort-arrow.ascending { 49 | background-image: url("../images/upsimple.png"); 50 | } -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/bridge/email/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.bridge.email (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.bridge.email

14 |
15 |

Classes

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/process/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.process (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.process

14 |
15 |

Classes

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/cobertura/help.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | Coverage Report - Help 9 | 10 | 11 | 12 | 13 |
14 | 15 |
Line Coverage
16 |
The percent of lines executed by this test run.
17 | 18 |
Branch Coverage
19 |
The percent of branches executed by this test run.
20 | 21 |
Complexity
22 |
Average McCabe's cyclomatic code complexity for all methods. This is basically a count of the number of different code paths in a method (incremented by 1 for each if statement, while loop, etc.)
23 | 24 |
N/A
25 |
Line coverage and branch coverage will appear as "Not Applicable" when Cobertura can not find line number information in the .class file. This happens for stub and skeleton classes, interfaces, or when the class was not compiled with "debug=true."
26 | 27 |
28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/bridge/process/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.bridge.process (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.bridge.process

14 |
15 |

Classes

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/http/HTTPResponseHandler.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.http; 2 | 3 | import org.fax4j.FaxJob; 4 | import org.fax4j.FaxJobStatus; 5 | import org.fax4j.common.FaxActionType; 6 | import org.fax4j.common.Service; 7 | 8 | /** 9 | * This interface defines the HTTP response handler which is used to update the fax job based on the HTTP response data. 10 | * 11 | * @author Sagie Gur-Ari 12 | * @version 1.0 13 | * @since 0.42.4 14 | */ 15 | public interface HTTPResponseHandler extends Service { 16 | /** 17 | * Updates the fax job based on the data from the HTTP response data. 18 | * 19 | * @param faxJob 20 | * The fax job object 21 | * @param httpResponse 22 | * The HTTP response 23 | * @param faxActionType 24 | * The fax action type 25 | */ 26 | void updateFaxJob(FaxJob faxJob, HTTPResponse httpResponse, FaxActionType faxActionType); 27 | 28 | /** 29 | * This function extracts the fax job status from the HTTP response data. 30 | * 31 | * @param httpResponse 32 | * The HTTP response 33 | * @return The fax job status 34 | */ 35 | FaxJobStatus getFaxJobStatus(HTTPResponse httpResponse); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/win2k_submit_fax.vbs: -------------------------------------------------------------------------------- 1 | 2 | ''define variables 3 | Dim faxServerInstance 4 | Set faxServerInstance=faxCreateFaxServerWin2k() 5 | 6 | ''connect to the fax server 7 | faxServerInstance.Connect "{0}" 8 | 9 | ''create document 10 | Dim faxDocumentInstance 11 | Set faxDocumentInstance=faxServerInstance.CreateDocument("{1}") 12 | 13 | ''name the document 14 | If "" <> "{2}" Then 15 | faxDocumentInstance.DisplayName="{2}" 16 | End If 17 | 18 | ''add the recipient number 19 | faxDocumentInstance.FaxNumber="{3}" 20 | 21 | ''add the recipient name 22 | If "" <> "{4}" Then 23 | faxDocumentInstance.RecipientName="{4}" 24 | End If 25 | 26 | ''set the sender properties 27 | If "" <> "{5}" Then 28 | faxDocumentInstance.SenderName="{5}" 29 | End If 30 | If "" <> "{6}" Then 31 | faxDocumentInstance.SenderFax="{6}" 32 | End If 33 | 34 | ''submit the document to the connected fax server 35 | Dim faxJobID 36 | ioPrintDebug "Sending fax" 37 | faxJobID=faxDocumentInstance.Send 38 | ioPrintDebug "Fax sent" 39 | 40 | ''print output start 41 | ioPrintProcessOutputBeginText 42 | 43 | ''print fax job ID 44 | Dim outputText 45 | outputText=utilStringConcat("fax.job.id=",faxJobID) 46 | ioPrintText outputText 47 | ioPrintText "fax.operation.done=true" 48 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/email/MailAuthenticator.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.email; 2 | 3 | import javax.mail.Authenticator; 4 | import javax.mail.PasswordAuthentication; 5 | 6 | /** 7 | * This class implements the javax.mail.Authenticator 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.1 12 | */ 13 | public class MailAuthenticator extends Authenticator { 14 | /** This is the password authentication */ 15 | private final transient PasswordAuthentication PASSWORD_AUTHENTICATION; 16 | 17 | /** 18 | * This is the class constructor. 19 | * 20 | * @param userName 21 | * The user name 22 | * @param password 23 | * The password 24 | */ 25 | public MailAuthenticator(String userName, String password) { 26 | super(); 27 | 28 | // init password authentication 29 | this.PASSWORD_AUTHENTICATION = new PasswordAuthentication(userName, password); 30 | } 31 | 32 | /** 33 | * This funcion returns a password authentication. 34 | * 35 | * @return A password authentication 36 | */ 37 | @Override 38 | protected PasswordAuthentication getPasswordAuthentication() { 39 | return this.PASSWORD_AUTHENTICATION; 40 | } 41 | } -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.bridge.http.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.bridge.http 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
HTTP2FaxBridge (100%)
HTTPRequestParser (N/A)
MultiPartHTTPRequestParser (97%)
SimpleHTTPRequestParser (100%)
31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/mac/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.mac (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.mac

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/http/HTTPClientConfiguration.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.http; 2 | 3 | import org.fax4j.common.FaxActionType; 4 | import org.fax4j.spi.http.HTTPClient.HTTPMethod; 5 | 6 | /** 7 | * This interface holds the HTTP client configuration.
8 | * Each HTTP client will have different configuration requirements and therefore this interface is just a flagging 9 | * interface. 10 | * 11 | * @author Sagie Gur-Ari 12 | * @version 1.03 13 | * @since 0.20c 14 | */ 15 | public interface HTTPClientConfiguration { 16 | /** 17 | * This function returns the host name. 18 | * 19 | * @return The host name 20 | */ 21 | String getHostName(); 22 | 23 | /** 24 | * This function returns the port. 25 | * 26 | * @return The port 27 | */ 28 | int getPort(); 29 | 30 | /** 31 | * This function returns the SSL flag value. 32 | * 33 | * @return The SSL flag value 34 | */ 35 | boolean isSSL(); 36 | 37 | /** 38 | * This function returns the HTTP method based on the provided fax action type. 39 | * 40 | * @param faxActionType 41 | * The fax action type 42 | * @return The HTTP method 43 | */ 44 | HTTPMethod getMethod(FaxActionType faxActionType); 45 | } 46 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.process.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.process 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
ExitCodeProcessOutputValidator (100%)
ProcessFaxClientSpi (87%)
ProcessOutputHandler (N/A)
ProcessOutputValidator (N/A)
31 | 32 | 33 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/bridge/ContextFaxBridge.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge; 2 | 3 | import org.fax4j.FaxJob; 4 | 5 | /** 6 | * This interface defines only the common capabilities of the context fax bridge.
7 | *
8 | * Below table describes the configuration values relevant for this class.
9 | * Configuration: 10 | * 11 | * 12 | * 13 | * 14 | * 15 | * 16 | * 17 | * 18 | * 19 | * 20 | * 21 | * 22 | * 23 | * 24 | * 25 | *
NameDescriptionPreconfigured ValueDefault ValueMandatory
org.fax4j.bridge.vendor.policy.class.nameThe vendor policy class name.org.fax4j.bridge.EmptyVendorPolicyorg.fax4j.bridge.EmptyVendorPolicyfalse
26 | * 27 | * @param 28 | * The context type 29 | * @author Sagie Gur-Ari 30 | * @version 1.0 31 | * @since 0.41.4 32 | */ 33 | public interface ContextFaxBridge extends FaxBridge { 34 | /** 35 | * This function will submit a new fax job. 36 | * 37 | * @param inputData 38 | * The input data holding the fax job information 39 | * @return The submitted fax job 40 | */ 41 | FaxJob submitFaxJob(T inputData); 42 | } 43 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/hoiio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.hoiio (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.hoiio

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/linux/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.linux (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.linux

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/bridge/email/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.bridge.email 8 | 9 | 10 | 11 |

org.fax4j.bridge.email

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/mac/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.mac 8 | 9 | 10 | 11 |

org.fax4j.spi.mac

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/efax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.efax (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.efax

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/phaxio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.phaxio (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.phaxio

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/hoiio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.hoiio 8 | 9 | 10 | 11 |

org.fax4j.spi.hoiio

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/linux/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.linux 8 | 9 | 10 | 11 |

org.fax4j.spi.linux

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/faxage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.faxage (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.faxage

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/process/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.process 8 | 9 | 10 | 11 |

org.fax4j.spi.process

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/phaxio/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.phaxio 8 | 9 | 10 | 11 |

org.fax4j.spi.phaxio

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/vbs/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.vbs (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.vbs

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/efax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.efax 8 | 9 | 10 | 11 |

org.fax4j.spi.efax

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/comm/FaxModemAdapter.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.comm; 2 | 3 | import org.fax4j.FaxJob; 4 | import org.fax4j.common.ProviderImplementation; 5 | import org.fax4j.spi.FaxClientSpi; 6 | 7 | /** 8 | * Defines a local fax modem adapter.
9 | * This adapter can only work with fax modems that are directly connected to the machine via COMM port.
10 | * The fax modem is not thread safe and it is up to the caller class to synchronize any non thread safe resource, such 11 | * as the COMM adapter. 12 | * 13 | * @author Sagie Gur-Ari 14 | * @version 1.02 15 | * @since 0.34 16 | */ 17 | public interface FaxModemAdapter extends ProviderImplementation { 18 | /** 19 | * This function initializes the fax modem adapter. 20 | * 21 | * @param faxClientSpi 22 | * The fax client SPI 23 | */ 24 | void initialize(FaxClientSpi faxClientSpi); 25 | 26 | /** 27 | * This function will submit a new fax job.
28 | * The fax job ID may be populated by this method in the provided fax job object. 29 | * 30 | * @param faxJob 31 | * The fax job object containing the needed information 32 | * @param adapter 33 | * The COMM port adapter 34 | */ 35 | void submitFaxJob(FaxJob faxJob, CommPortAdapter adapter); 36 | } 37 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/bridge/process/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.bridge.process 8 | 9 | 10 | 11 |

org.fax4j.bridge.process

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /src/test/java/com/java4less/rfax/FaxModem.java: -------------------------------------------------------------------------------- 1 | package com.java4less.rfax; 2 | 3 | /** 4 | * Test Class 5 | * 6 | * @author Sagie Gur-Ari 7 | */ 8 | public class FaxModem { 9 | /** Class member */ 10 | public int faxClass; 11 | 12 | /** 13 | * Test method 14 | * 15 | * @param value 16 | * Any value 17 | */ 18 | public void setPortName(String value) { 19 | if (value == null) { 20 | throw new IllegalArgumentException("port name is null."); 21 | } 22 | } 23 | 24 | /** 25 | * Test method 26 | * 27 | * @param producer 28 | * Any producer 29 | */ 30 | public void open(FaxProducer producer) { 31 | if (producer == null) { 32 | throw new IllegalArgumentException("fax producer is null."); 33 | } 34 | } 35 | 36 | /** 37 | * Test method 38 | * 39 | * @param number 40 | * Any number 41 | * @return true 42 | */ 43 | public boolean sendFax(String number) { 44 | if (number == null) { 45 | throw new IllegalArgumentException("fax number is null."); 46 | } 47 | 48 | return true; 49 | } 50 | 51 | /** 52 | * Test method 53 | */ 54 | public void close() { 55 | // empty 56 | } 57 | } -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/interfax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.interfax (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.interfax

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/metrofax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.metrofax (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.metrofax

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/send2fax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.send2fax (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.send2fax

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/util/ProcessExecutor.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.util; 2 | 3 | import java.io.IOException; 4 | import org.fax4j.common.ConfigurationHolder; 5 | import org.fax4j.util.ProcessExecutorHelper.ProcessOutput; 6 | 7 | /** 8 | * The process executer enables to execute native processes.
9 | * Implementing classes must be statless and thread safe. 10 | * 11 | * @author Sagie Gur-Ari 12 | * @version 1.01 13 | * @since 0.40.1 14 | */ 15 | public interface ProcessExecutor { 16 | /** The process executer class name property key */ 17 | String PROCESS_EXECUTER_CLASS_NAME_PROPERTY_KEY = "org.fax4j.process.executer.class.name"; 18 | 19 | /** 20 | * This function executes the given command and returns the process output. 21 | * 22 | * @param configurationHolder 23 | * The configuration holder used when invoking the process 24 | * @param command 25 | * The command to execute 26 | * @return The process output 27 | * @throws IOException 28 | * Any IO exception 29 | * @throws InterruptedException 30 | * If thread interrupted during waitFor for the process 31 | */ 32 | ProcessOutput executeProcess(ConfigurationHolder configurationHolder, String command) 33 | throws IOException, InterruptedException; 34 | } 35 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/faxage/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.faxage 8 | 9 | 10 | 11 |

org.fax4j.spi.faxage

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/bridge/http/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.bridge.http (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.bridge.http

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/email/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.email (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.email

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/native/windows/dll/fax4j_dll.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fax4j_dll", "fax4j_dll.vcxproj", "{AFCD864B-7EC7-45B8-9042-3683B542E07D}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|64 = Debug|64 9 | Debug|Win32 = Debug|Win32 10 | Release|64 = Release|64 11 | Release|Win32 = Release|Win32 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Debug|64.ActiveCfg = Release|Win32 15 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Debug|64.Build.0 = Release|Win32 16 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Debug|Win32.ActiveCfg = Release|Win32 17 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Debug|Win32.Build.0 = Release|Win32 18 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Release|64.ActiveCfg = Release|Win32 19 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Release|64.Build.0 = Release|Win32 20 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Release|Win32.ActiveCfg = Release|Win32 21 | {AFCD864B-7EC7-45B8-9042-3683B542E07D}.Release|Win32.Build.0 = Release|Win32 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/extremefax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.extremefax (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.extremefax

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/nextivafax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.nextivafax (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.nextivafax

14 |
15 |

Classes

16 | 19 |

Enums

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/comm/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.comm (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.comm

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/interfax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.interfax 8 | 9 | 10 | 11 |

org.fax4j.spi.interfax

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/metrofax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.metrofax 8 | 9 | 10 | 11 |

org.fax4j.spi.metrofax

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/send2fax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.send2fax 8 | 9 | 10 | 11 |

org.fax4j.spi.send2fax

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/extremefax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.extremefax 8 | 9 | 10 | 11 |

org.fax4j.spi.extremefax

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/nextivafax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.nextivafax 8 | 9 | 10 | 11 |

org.fax4j.spi.nextivafax

12 |
13 |

Classes

14 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/email/MailResourcesHolder.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.email; 2 | 3 | import javax.mail.Session; 4 | import javax.mail.Transport; 5 | 6 | /** 7 | * This class holds the java mail objects. 8 | * 9 | * @author Sagie Gur-Ari 10 | * @version 1.0 11 | * @since 0.39a 12 | */ 13 | public class MailResourcesHolder { 14 | /** This is the mail session */ 15 | private final Session SESSION; 16 | /** This is the mail transport */ 17 | private final Transport TRANSPORT; 18 | 19 | /** 20 | * This is the default constructor. 21 | * 22 | * @param session 23 | * The mail session 24 | * @param transport 25 | * The mail transport 26 | */ 27 | public MailResourcesHolder(Session session, Transport transport) { 28 | super(); 29 | 30 | // get values 31 | this.SESSION = session; 32 | this.TRANSPORT = transport; 33 | } 34 | 35 | /** 36 | * This function returns the mail session. 37 | * 38 | * @return The mail session 39 | */ 40 | public final Session getSession() { 41 | return this.SESSION; 42 | } 43 | 44 | /** 45 | * This function returns the mail transport. 46 | * 47 | * @return The mail transport 48 | */ 49 | public final Transport getTransport() { 50 | return this.TRANSPORT; 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/resources/org/fax4j/spi/vbs/winxp_submit_fax.vbs: -------------------------------------------------------------------------------- 1 | 2 | ''define variables 3 | Dim faxServerInstance 4 | Set faxServerInstance=faxCreateFaxServer() 5 | Dim faxDocumentInstance 6 | Set faxDocumentInstance=faxCreateFaxDocument() 7 | 8 | ''connect to the fax server 9 | faxServerInstance.Connect "{0}" 10 | 11 | ''set the fax body 12 | faxDocumentInstance.Body="{1}" 13 | 14 | ''name the document 15 | faxDocumentInstance.DocumentName="{2}" 16 | 17 | ''set the fax priority 18 | faxDocumentInstance.Priority={3} 19 | 20 | ''add the recipient (number, name) 21 | faxDocumentInstance.Recipients.Add "{4}", "{5}" 22 | 23 | ''set to none receipt type 24 | faxDocumentInstance.ReceiptType=frtNONE 25 | 26 | ''set the sender properties 27 | faxDocumentInstance.Sender.Name="{6}" 28 | faxDocumentInstance.Sender.FaxNumber="{7}" 29 | faxDocumentInstance.Sender.Email="{8}" 30 | 31 | ''submit the document to the connected fax server 32 | Dim faxJobIDs 33 | ioPrintDebug "Sending fax" 34 | faxJobIDs=faxDocumentInstance.ConnectedSubmit(faxServerInstance) 35 | ioPrintDebug "Fax sent" 36 | 37 | ''disconnect from fax server 38 | faxServerInstance.Disconnect 39 | 40 | ''print output start 41 | ioPrintProcessOutputBeginText 42 | 43 | ''print fax job ID as empty since vbs does not support string array 44 | Dim outputText 45 | outputText=utilStringConcat("fax.job.id=","") 46 | ioPrintText outputText 47 | ioPrintText "fax.operation.done=true" 48 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/bridge/email/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.bridge.email (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.bridge.email

14 |
15 |

Interfaces

16 | 19 |

Classes

20 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /src/test/java/org/fax4j/bridge/EmptyVendorPolicyTest.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge; 2 | 3 | import org.fax4j.spi.FaxJobImpl; 4 | import org.junit.Assert; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | 8 | /** 9 | * Test Class 10 | * 11 | * @author Sagie Gur-Ari 12 | */ 13 | public class EmptyVendorPolicyTest { 14 | /** The vendor policy to test */ 15 | private EmptyVendorPolicy policy; 16 | 17 | /** 18 | * Sets up the test objects. 19 | * 20 | * @throws Exception 21 | * Any exception 22 | */ 23 | @Before 24 | public void setUp() throws Exception { 25 | this.policy = new EmptyVendorPolicy(); 26 | this.policy.initialize(new Object()); 27 | } 28 | 29 | /** 30 | * Test 31 | * 32 | * @throws Exception 33 | * Any exception 34 | */ 35 | @Test 36 | public void invokePolicyForRequestValidTest() throws Exception { 37 | boolean output = this.policy.invokePolicyForRequest(new Object()); 38 | Assert.assertTrue(output); 39 | } 40 | 41 | /** 42 | * Test 43 | * 44 | * @throws Exception 45 | * Any exception 46 | */ 47 | @Test 48 | public void invokePolicyForResponseValidTest() throws Exception { 49 | boolean output = this.policy.invokePolicyForResponse(new Object(), new FaxJobImpl()); 50 | Assert.assertTrue(output); 51 | } 52 | } -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j

14 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/bridge/AbstractFax4JBridge.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.bridge; 2 | 3 | import org.fax4j.Provider; 4 | import org.fax4j.common.Fax4JProvider; 5 | 6 | /** 7 | * This class partial implementation of the fax bridge.
8 | * Specific implementations may provide additional, more transport based capabilities.
9 | * Below table describes the configuration values relevant for this class.
10 | * Configuration: 11 | * 12 | * 13 | * 14 | * 15 | * 16 | * 17 | * 18 | * 19 | * 20 | * 21 | * 22 | * 23 | * 24 | * 25 | * 26 | *
NameDescriptionPreconfigured ValueDefault ValueMandatory
org.fax4j.bridge.vendor.policy.class.nameThe vendor policy class name.org.fax4j.bridge.EmptyVendorPolicyorg.fax4j.bridge.EmptyVendorPolicyfalse
27 | * 28 | * @author Sagie Gur-Ari 29 | * @version 1.0 30 | * @since 0.40.6 31 | */ 32 | public abstract class AbstractFax4JBridge extends AbstractFaxBridge { 33 | /** 34 | * This is the class constructor. 35 | */ 36 | public AbstractFax4JBridge() { 37 | super(); 38 | } 39 | 40 | /** 41 | * This function returns the provider. 42 | * 43 | * @return The provider 44 | */ 45 | public final Provider getProvider() { 46 | return Fax4JProvider.FAX4J_PROVIDER; 47 | } 48 | } -------------------------------------------------------------------------------- /docs/xref/org/fax4j/bridge/email/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.bridge.email 8 | 9 | 10 | 11 |

org.fax4j.bridge.email

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/FaxJobMonitor.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi; 2 | 3 | import java.util.Map; 4 | import org.fax4j.FaxJob; 5 | import org.fax4j.common.Logger; 6 | 7 | /** 8 | * This interface defines the fax job monitor capabilities. 9 | * 10 | * @author Sagie Gur-Ari 11 | * @version 1.01 12 | * @since 0.40.2 13 | */ 14 | public interface FaxJobMonitor { 15 | /** 16 | * This function initializes the fax job monitor.
17 | * This method is called by the FaxClientSpiFactory. 18 | * 19 | * @param configuration 20 | * The fax job monitor configuration 21 | * @param logger 22 | * The internal logger 23 | */ 24 | void initialize(Map configuration, Logger logger); 25 | 26 | /** 27 | * This function starts monitoring the requested fax job. 28 | * 29 | * @param faxClientSpi 30 | * The fax client SPI 31 | * @param faxJob 32 | * The fax job to monitor 33 | */ 34 | void monitorFaxJob(FaxClientSpi faxClientSpi, FaxJob faxJob); 35 | 36 | /** 37 | * This function will stop the monitoring of all fax jobs registered by the provided fax client SPI.
38 | * Other fax jobs registered by other SPIs will keep on being monitored. 39 | * 40 | * @param faxClientSpi 41 | * The fax client SPI 42 | */ 43 | void stopMonitoringAllFaxJobs(FaxClientSpi faxClientSpi); 44 | } 45 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/adapter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.adapter (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.adapter

14 |
15 |

Classes

16 | 20 |

Enums

21 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/native/windows/dll/fax4j_dll.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | 26 | 27 | Header Files 28 | 29 | 30 | Header Files 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/cobertura/css/source-viewer.css: -------------------------------------------------------------------------------- 1 | pre.src { 2 | background: #ffffff; 3 | margin-top: 0px; 4 | margin-bottom: 0px; 5 | } 6 | 7 | table.src { 8 | border: #dcdcdc 1px solid; 9 | font-size: 16px; 10 | } 11 | 12 | td.numLine { 13 | background: #f0f0f0; 14 | border-right: #dcdcdc 1px solid; 15 | padding-right: 3px; 16 | text-align: right; 17 | } 18 | 19 | td.numLineCover { 20 | background: #80ff80; 21 | border-right: #dcdcdc 1px solid; 22 | padding-right: 3px; 23 | text-align: right; 24 | } 25 | 26 | td.nbHits { 27 | background: #f0f0f0; 28 | border-right: #dcdcdc 1px solid; 29 | padding-right: 3px; 30 | text-align: right; 31 | } 32 | 33 | td.nbHitsCovered { 34 | background: #80ff80; 35 | border-right: #dcdcdc 1px solid; 36 | padding-right: 3px; 37 | text-align: right; 38 | } 39 | 40 | td.nbHitsUncovered { 41 | background: #ff9090; 42 | border-right: #dcdcdc 1px solid; 43 | font-weight: bold; 44 | padding-right: 3px; 45 | text-align: right; 46 | } 47 | 48 | td.src { 49 | width: 100%; 50 | } 51 | 52 | span.comment { 53 | color: #b22222; 54 | font-style: italic; 55 | } 56 | 57 | span.keyword { 58 | color: #2020bf; 59 | font-weight: bold; 60 | } 61 | 62 | span.srcUncovered { 63 | background: #ff9090; 64 | } 65 | 66 | span.string { 67 | color: #2a00ff; 68 | } 69 | 70 | span.text_italic { 71 | font-size: 12px; 72 | font-style: italic; 73 | } 74 | -------------------------------------------------------------------------------- /docs/testapidocs/com/java4less/rfax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.java4less.rfax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

com.java4less.rfax

14 |
15 |

Interfaces

16 | 19 |

Classes

20 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/bridge/process/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.bridge.process (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.bridge.process

14 |
15 |

Interfaces

16 | 19 |

Classes

20 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/cobertura/frame-sourcefiles-org.fax4j.spi.hylafax.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Coverage Report Classes 7 | 8 | 9 | 10 |
11 | org.fax4j.spi.hylafax 12 |
13 |
 
14 |
Classes
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
AbstractHylaFAXClientConnectionFactory (86%)
HylaFAXClientConnectionFactory (N/A)
HylaFAXClientConnectionFactoryImpl (66%)
HylaFaxClientSpi (76%)
HylaFaxJob (50%)
34 | 35 | 36 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/vbs/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.vbs 8 | 9 | 10 | 11 |

org.fax4j.spi.vbs

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /src/main/assembly/assembly_full.xml: -------------------------------------------------------------------------------- 1 | 2 | full 3 | 4 | zip 5 | 6 | true 7 | true 8 | 9 | 10 | ${project.basedir} 11 | 12 | pom.xml 13 | LICENSE.txt 14 | Docs.html 15 | *build* 16 | 17 | 18 | 19 | ${project.basedir}/src 20 | /src 21 | 22 | 23 | ${project.build.directory} 24 | /lib 25 | 26 | ${project.name}-${project.version}.jar 27 | 28 | 29 | 30 | ${project.build.directory} 31 | /extra 32 | 33 | ${project.name}-${project.version}-javadoc.jar 34 | ${project.name}-${project.version}-sources.jar 35 | 36 | 37 | 38 | 39 | 40 | /lib 41 | false 42 | false 43 | runtime 44 | 45 | 46 | -------------------------------------------------------------------------------- /docs/apidocs/org/fax4j/spi/java4less/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.java4less (fax4j 0.45.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.java4less

14 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/bridge/http/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.bridge.http 8 | 9 | 10 | 11 |

org.fax4j.bridge.http

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/bridge/process/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.bridge.process 8 | 9 | 10 | 11 |

org.fax4j.bridge.process

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /docs/testapidocs/org/fax4j/spi/hylafax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | org.fax4j.spi.hylafax (fax4j 0.45.0 Test API) 8 | 9 | 10 | 11 | 12 | 13 |

org.fax4j.spi.hylafax

14 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/email/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.email 8 | 9 | 10 | 11 |

org.fax4j.spi.email

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/http/EmptyHTTPResponseHandler.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.http; 2 | 3 | import org.fax4j.FaxJob; 4 | import org.fax4j.FaxJobStatus; 5 | import org.fax4j.common.Fax4JProvider; 6 | import org.fax4j.common.FaxActionType; 7 | 8 | /** 9 | * This class provides empty implementation of the HTTP response handler interface. 10 | * 11 | * @author Sagie Gur-Ari 12 | * @version 1.0 13 | * @since 0.42.4 14 | */ 15 | public class EmptyHTTPResponseHandler extends AbstractHTTPResponseHandler { 16 | /** 17 | * This is the default constructor. 18 | */ 19 | public EmptyHTTPResponseHandler() { 20 | super(Fax4JProvider.FAX4J_PROVIDER); 21 | } 22 | 23 | /** 24 | * Updates the fax job based on the data from the HTTP response data. 25 | * 26 | * @param faxJob 27 | * The fax job object 28 | * @param httpResponse 29 | * The HTTP response 30 | * @param faxActionType 31 | * The fax action type 32 | */ 33 | public void updateFaxJob(FaxJob faxJob, HTTPResponse httpResponse, FaxActionType faxActionType) { 34 | // empty implementation 35 | } 36 | 37 | /** 38 | * This function extracts the fax job status from the HTTP response data. 39 | * 40 | * @param httpResponse 41 | * The HTTP response 42 | * @return The fax job status 43 | */ 44 | public FaxJobStatus getFaxJobStatus(HTTPResponse httpResponse) { 45 | return FaxJobStatus.UNKNOWN; 46 | } 47 | } -------------------------------------------------------------------------------- /src/main/java/org/fax4j/spi/process/ProcessOutputHandler.java: -------------------------------------------------------------------------------- 1 | package org.fax4j.spi.process; 2 | 3 | import org.fax4j.FaxJob; 4 | import org.fax4j.FaxJobStatus; 5 | import org.fax4j.common.FaxActionType; 6 | import org.fax4j.spi.FaxClientSpi; 7 | import org.fax4j.util.ProcessExecutorHelper.ProcessOutput; 8 | 9 | /** 10 | * This interface defines the process output handler which is used to update the fax job based on the process output 11 | * information. 12 | * 13 | * @author Sagie Gur-Ari 14 | * @version 1.01 15 | * @since 0.25 16 | */ 17 | public interface ProcessOutputHandler { 18 | /** 19 | * Updates the fax job based on the data from the process output. 20 | * 21 | * @param faxClientSpi 22 | * The fax client SPI 23 | * @param faxJob 24 | * The fax job object 25 | * @param processOutput 26 | * The process output 27 | * @param faxActionType 28 | * The fax action type 29 | */ 30 | void updateFaxJob(FaxClientSpi faxClientSpi, FaxJob faxJob, ProcessOutput processOutput, 31 | FaxActionType faxActionType); 32 | 33 | /** 34 | * This function extracts the fax job status from the process output. 35 | * 36 | * @param faxClientSpi 37 | * The fax client SPI 38 | * @param processOutput 39 | * The process output 40 | * @return The fax job status 41 | */ 42 | FaxJobStatus getFaxJobStatus(FaxClientSpi faxClientSpi, ProcessOutput processOutput); 43 | } 44 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/adapter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.adapter 8 | 9 | 10 | 11 |

org.fax4j.spi.adapter

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /docs/xref-test/org/fax4j/spi/comm/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.comm 8 | 9 | 10 | 11 |

org.fax4j.spi.comm

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /docs/xref-test/com/java4less/rfax/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package com.java4less.rfax 8 | 9 | 10 | 11 |

com.java4less.rfax

12 |
13 |

Classes

14 | 28 |
29 | 30 | -------------------------------------------------------------------------------- /docs/xref/org/fax4j/spi/java4less/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fax4j 0.45.0 Reference Package org.fax4j.spi.java4less 8 | 9 | 10 | 11 |

org.fax4j.spi.java4less

12 |
13 |

Classes

14 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: [push, pull_request] 3 | env: 4 | CLICOLOR_FORCE: 1 5 | ACTIONS_ALLOW_UNSECURE_COMMANDS: true 6 | jobs: 7 | ci-linux: 8 | name: CI Linux 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v2 13 | - name: Set up JDK 14 | uses: actions/setup-java@v1 15 | with: 16 | java-version: 1.8 17 | - name: Build with Maven 18 | run: mvn clean install site 19 | ci-windows: 20 | name: CI Windows 21 | runs-on: windows-latest 22 | steps: 23 | - name: Checkout 24 | uses: actions/checkout@v2 25 | - name: Setup Env 26 | run: | 27 | echo "::add-path::C:\Windows\Microsoft.NET\Framework\v4.0.30319" 28 | echo "::add-path::C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE" 29 | echo "::add-path::C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN" 30 | echo "::set-env name=LIB::C:\Program Files\Microsoft Visual Studio 10.0\VC\LIB;%LIB%" 31 | echo "::set-env name=LIB::C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib;%LIB%" 32 | echo "::set-env name=LIB::C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;%LIB%" 33 | echo "::set-env name=INCLUDE::C:\Program FilesMicrosoft Visual Studio 10.0\VC\include;%INCLUDE%" 34 | - name: Setup JDK 35 | uses: actions/setup-java@v1 36 | with: 37 | java-version: 1.8 38 | - name: Build with Maven 39 | run: mvn -B clean install site 40 | - uses: actions/upload-artifact@v2 41 | with: 42 | path: target/fax4j-*-full.zip 43 | 44 | --------------------------------------------------------------------------------