quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally

, '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

quickstart

James Moger edited this page Jan 29, 2016 · 2 revisions

Quickstart

The fastest way to get started building a microservice based on Fathom is to use a Maven archetype. An archetype is a project templating toolkit which is used to generate a new project based on a few input parameters.

You'll need to install Maven for your operating system and have it available on your $PATH in order to use the following instructions. You may also create your microservice using the archetype from an IDE.

Creating Your Microservice with Maven & the Fathom Standard Archetype

To create your app copy & paste the following command to your console:

mvn -B archetype:generate \
-DarchetypeGroupId=com.gitblit.fathom \
-DarchetypeArtifactId=fathom-archetype-standard \
-DarchetypeVersion=0.8.0 \
-DgroupId=com.mycompany \
-DartifactId=myapp \
-Dversion=1.0.0-SNAPSHOT \
-DpackageName=com.mycompany \
-Dname="My App"

Make sure to substitute the groupId, artifactId, version, packageName, and name values with ones that make sense for your app.

!!! Note After this command completes your new project will be available in the artifactId subdirectory of your current directory.

!!! Warning If you are creating your app with an IDE then you will have to configure your IDE compiler settings to use the -parameters compiler flag. See this page for more details.

About your Generated Microservice

The project you created from the Fathom Standard Archetype is not a barebones project. The archetype starts you off with with a completely functional microservice based on:

The Fathom Standard Archetype also sets up your application for optimal building with Maven and Java 8.

!!! Note You will still have to configure your IDE to use the Java 8 -parameters compiler flag.

Using your Microservice

Your generated app is ready to perform.

Unit Tests

From your project directory...

mvn clean test

This will compile your application and run through the generated unit tests. Some basic unit tests are included in the Fathom Standard Archetype that confirm your RESTful routing is working and demonstrate how to run your Fathom application in TEST mode.

Execution

You may also want to run your application and browse it. Generally you would do this from your IDE by running the generated Launcher class in your specified application package. However there may be some value to compiling and running it from a console through Maven.

From your project directory...

mvn clean compile exec:java

... and then browse to http://localhost:8080.

Packaging your Microservice

Your application has been preconfigured to generate both a Stork .tar.gz distribution and Capsule thin-jar & fat-jar binaries.

From your project directory...

mvn clean package

... and then find the generated binaries in the target/ subdirectory.

Clone this wiki locally