Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

HOBBIT Java SDK Example Build Status

This repository contains all types of HOBBIT-compatible components and number of tests, requred to debug components locally without having a running instance of the platform.

The repository may be cloned and used as HOBBIT-compatible basis for the future project (benchmark or system). The tests allow developers to debug components either as pure java codes or being packaged into docker containers. Fully tested docker images may be uploaded and executed in the online platform without any modifications.

The added value of the Java SDK against standart HOBBIT approach decribed here.

Usage

Before you start

  1. Make sure that Oracle 1.8 (or higher) is installed (java -version). Or install it by the sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer -y.
  2. Make sure that docker (v17 and later) is installed (or install it by sudo curl -sSL https://get.docker.com/ | sh)
  3. Make sure that maven (v3 and later) is installed (or install it by sudo apt-get install maven)
  4. Add the 127.0.0.1 rabbit line to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
  5. Clone this repository (git clone https://github.com/hobbit-project/java-sdk-example.git)
  6. Install SDK dependency into your local maven repository (mvn validate)

How to create a benchmark

  1. Please find the basic benchmark component implementations in the sources folder. You may extend the components with logic of your benchmark and debug the components as pure java codes by running the make test-benchmark command or execute checkHealth() method from ExampleBenchmarkTest) in IDE. You may specify input parameters models for benchmark and system you are running.
  2. Once your components work well as pure java codes, you can test them components being packed into docker containers. In order to do that you have to modify/configure the values of constants defined in the Constants file (repo path, imagenamePrefix, dockerWorkDir). This configuration will be used for dynamic creation of DockerFiles for all components (benchmark controller, data generator, task generator, eval storage, eval module, etc.) of your project. If you want to use specific DockerFile for any of the components, when specify them as dockerFileReaders by calling .dockerFileReader(yourReader) for DockersBuilder in the ExampleBenchmarkTest. If you need to put dataset into a specific docker image - then use the addFileOrFolder(path) method to the particular DockersBuilder builder.
  3. Pack source codes with dependencies into jar file (via the make package command)
  4. Run the make build-images or execute the buildImages() method from ExampleBenchmarkTest to build docker images. Images will be build from jar-file you have packed on step 4, so make sure that jar-file is actual and contains your last changes.
  5. Execute components as docker containers (run the make test-dockerized-benchmark command or checkHealthDockerized() method from ExampleBenchmarkTest via IDE). You may see all the logs from your containers.
  6. Once you have working images of your project you may upload the to remote repositories (by manual running the docker login ... , docker push ... commands) without any changes.
  7. Upload ttl-files, where needed (benchmark or system).

How to create a system for existing benchmark

If benchmark designer provides URLs of docker images for all the components of the benchmark or you have such images locally, then you can run your system under particular benchmark workload. If you have source codes of the benchmark you may eigher build these images locally or use the components as pure java code - please refer the section above:

  1. Specify image names for pull-based dockerizers (see the ExampleSystemTest.java). If benchmark does not contain the full amount of components, when remove the omited components from MultipleCommandsReaction.
  2. Run the make test-benchmark command or execute the checkHealth() test from ExampleSystemTest.java to debug your system as pure java code.
  3. Once your system works well as pure java code you may test it being packed into docker container (run the make test-dockerized-benchmark command or execute the checkHealthDockerized() test from ExampleSystemTest.java in IDE). To configure image settings please refer to the points 2-7 from the section above.

FAQ

If the benchmark execution hangs up, then search for the errors (via Ctrl+F) in console output. Components execution is parallel, so errors may be shown not in the bottom ot the output.

The detailed description of the development and debug process with Java SDK can be found here.

About

Integrate your benchmarks and systems into the HOBBIT platform in 5 minutes

Topics

Resources

Stars

2 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages