No worries or rush on my side ;) Just ping me on this ticket if help or testing needed.
Thanks nono303, yes I think it makes sense to perform the http engine change also for the trunk/main branch. The main reason from my perspective is not the speed, but the left over connections which also affect the server side. That is unnecessary resource consumtion... The problem is that the old HttpURLConnection is exposed to map sources. Especially the BSH map sources are a complicated case I have to find a workaround for. At the moment my dev system is out of order so merging your patch will...
Thanks nono303, yes I think it makes sense to perform the http engine change also for the trunk/main branch. The problem is that the old HttpURLConnection is exposed to map sources. Especially the BSH map sources are a complicated case I have to find a workaround for. At the moment my dev system is out of order so merging your patch will delay a bit.
Hi @r_x, As I saw that you've already incorporated some of my commits into the trunk, I just attach a patch file for apacheCommonsHttp TileDownLoader, to avoid any dubious merge / rebase ;) In my pov., this implementation should be generalized because it resolves the TCP socket leak issue and significantly improves throughput (under the same conditions: trunk r2798 20MB/s vs. apacheCommonsHttp 54MB/s). I haven't found any memory leaks or issues after creating several atlases sequentially or simultaneously....
fixed some deprecation warnings
show git commit and branch in about dialog
I’ll have a look onto sourceforge forking and merging but for now, we’ll continue diving on my github fork & once clean, I’ll rebase it on sourceforge branch with a PR (or give you a patch if it's a mess) Fyi, found an issue and fix it to use connManager on httpclient: https://github.com/nono303/mobac/commit/9907c20ce385e572ec80c523952ee38ee7906f2a (from 8.5MB/s to 51MB/s)
minor improvements to gradle script
I have not used Git on Sourceforge before, but according to their documentation they do support forking and merging. The description seems to be hidden inside a linked Youtube video, at least I haven't found it in text form. https://sourceforge.net/p/forge/documentation/Git/#h-what-is-git But in the end I can use any online git repo as source.
Many many thx @r_x for this work! I've just tested it: successful experiment! It burned my server cpu ^^ Same configuration as previous test: 24 parallel threads without local storage targeting local tile server on a 10 Gbps link result ~100000 tiles downloaded (4.4GB) in 3 minutes. On both Mobac and tile server side: netstat -an | grep TIME_WAIT | wc -l 0 I'll dive on TileDownLoader implementation trying to hardenize it for production readiness and fix some little new issue (ex. m.mapsources.custom.CustomMapSource:...
I made a quick and dirty experiment replacing HttpUrlConnection by Apache Commons http client 5.5. Some functions of MOBAC like adding customHTTP headers don't work in this version but I assume for a local server this isn't necessary. You can find the code in branch apacheCommonsHttp in the new MOBAC git repository: https://sourceforge.net/p/mobac/git/ci/apacheCommonsHttp/tree/ Apache commons http client has an explicit connection manager and it makes sure HTTP connections are always returned in...
I made a quick and dirty experiment replacing HttpUrlConnection by Apache Commons http client 5.5. Some functions of MOBAC like âdding customHTTP headers don't work in this version but I assume for a local server this isn't necessary. You can find the code in branch apacheCommonsHttp in the new MOBAC git repository: https://sourceforge.net/p/mobac/git/ci/apacheCommonsHttp/tree/ Apache commons http client has an explicit connection manager and it makes sure HTTP connections are always returned in...
incomplete experiment: use Apache http client 5.5 for downloading tile images
fixed some deprecation warnings
change all Java files to LF line ending
Extract GIT revision info in gradle build process
Keep Java files with CRLF
make fields final where applicable
enhance exception handling
renormalize line endings
ignore directories.ini
GIT migration message
old SVN mentioned
some links fixed, content updated
ignore MOBAC files generated at run-time
ignore private key files
GIT configuration
Converted README from HTML to Markdown
Fixed several code hints and warnings
Fixed several code hints and warnings
Fixed several code hints and warnings
Mapsforge library updated to version 0.26.1 + other libraries updated
Label cache capacity to 10000 increased
Map Evaluator: renamed OSM map to reference map
logging
field renamed
added JPEG quality 40% and 30%
centralize URL creation
remove finalize
minor code changes
setMapSource error messages improved
README-DEV converted to Markup
README-DEV converted to Markup
README-DEV converted to Markup
error logging improved
Updated edu.sc.seis.launch4j plugin to version 3.0.6
Gradle wrapper updated to version 8.9
fix server initialization
Dialog "Select distance around track" allows to increase the slider range
fixed: defect lon coordinate
ignore defect track point when painting
override MOBAC program directory via ENV variable "MOBAC-PROGRAM-DIR"
replaced 4uMaps
bugfix: removed Osm4uMaps was still referenced in service file
-
Formatting, comments, synchronization
minor fixes
Gradle wrapper updated to version 8.6
utf8Control reuse instance
deleted no longer used launch4j config
Map source "4uMaps" removed (service discontinued)
bugfix: custom mapsources were not loaded
Custom map sources: validate map source names for disallowed characters
2.3.3
parseSVNRevision fix for dev environment
bug fix: "Add-Exports" was only effective for https (http was overwritten)
error logging
logging
reverted last commit
[custom] multi-layer map source: only add successfully loaded layer images to the loaded list
minor stability and performance improvements
code style
workaround for #383
launch4j config requires64Bit=true added
Updated org.xerial:sqlite-jdbc to 3.43.0.0
Updated gradle plugin edu.sc.seis.launch4j to 3.0.5
v2.3.2
code style
updated gradlew to 8.3; update gradle plugins
JPEG 75% option added
minor code changes
minor code changes
ignore out directories
MOBAC Map Evaluator: log URLs of downloaded tiles
Show map tile URL for WMS map sources in MOBAC Map Evaluator
removed unused and outdated class for SSLSocket tracing
d2s precision depends on zoom level
WMS version 1.1.1 is default
WMS version 1.1.1 is default, add warning (log) if version is not 1.1.1 or 1.3.0
updated dependencies beanshell, commons-text, imageio-webp
plugin edu.sc.seis.launch4j updated to 2.5.4
minor code improvements
MBTiles: atlases are now restricted to one map per zoom level
comment corrected
INSERT_SQL field renamed
MBTiles: prevent duplicate tiles in mbtiles database
version '2.3.1'
version '2.3.1'