Developing with Eclipse
Eclipse is the preferred development environment for junixsocket. Here are some steps that make your life easier.
NOTE: There are no special instructions if you “just use” junixsocket. Simply add junixsocket to your dependencies.
Install a recent version of Eclipse
Download the most recent version of the Eclipse IDE from https://www.eclipse.org/
It is recommended to download the package “Eclipse IDE for Java Developers” or “Eclipse IDE for Enterprise Java Developers”. You can always add packages later through “Eclipse Help -> Install new software” or the Eclipse Marketplace.
Keep the “junixsocket-native-*” projects closed
Due to incompatibilities with Eclipse m2e, you need to keep the following projects closed (or simply do not import them into the Eclipse workspace in the first place):
- junixsocket-native-common
- junixsocket-native-custom
If you don't, you may encounter the following error:
java.lang.UnsatisfiedLinkError: Could not load native library.
Moreover, if you try to run “Selftest” (from junixsocket-selftest) from within Eclipse, it will most likely tell you that the selftest failed.
Code Formatter and Style conventions
We use the coding conventions from https://github.com/kohlschutter/coding-style.
The first time you run mvn clean install
on junixsocket, these configurations will be automatically
installed into a coding-style
folder in the top-level project (unless the projects exists one level
above the junixsocket
parent project).
You are encouraged to import the corresponding configuration files to your Eclipse workspace.
If you don't want to apply these settings to your other projects, create a new Eclipse workspace
for junixsocket. You can also run mvn process-sources -Dreformat
to apply the formatting rules (along with other reformatting operations) from the command line.
Code quality checks
You should install SpotBugs and CheckStyle. They're incredibly helpful tools to ensure high-quality code.
The coding-style
project has configurations for both. Import them into Eclipse.
coding-style/eclipse/checkstyle-configuration.xml
(add to Eclipse Preferences -> Checkstyle -> New… -> External Configuration File)coding-style/eclipse/spotbugs-exclude.xml
(add to Eclipse Preferences -> Java -> SpotBugs -> Filter Files -> Exclude filter files)
You can use mvn clean install
to check from the command line. Add -Dstrict
to fail if there are issues.
Native hooks
Enable “Refresh using native hooks or polling” (under Eclipse Preferences -> General -> Workspace) I don't know why this isn't on by default.
Use Java 17 or newer for development
Make sure Java 17 or later is installed and available in Eclipse.
Working with the native C JNI library
Whenever you want to recompile the library, make sure to rebuild from the command line, using the following commands:
cd junixsocket
mvn clean install -DskipTests=true
The -DskipTests=true
makes sure we can actually install the new code, even if it may not pass all
unit tests.
If you just want to see if the code compiles, use this instead:
cd junixsocket
mvn clean install -DskipTests=true -pl junixsocket-native