From Fedora Project Wiki
(Created page with "This is where the initial drafts of some marketing materials are developed. Like. Very. Fine. Wine. Once they're ripped from my perfectionist claws... == Development Broc...")
 
No edit summary
Line 10: Line 10:


Fedora
Fedora
-1 to 2 sentence introduction of OS
* 1 to 2 sentence introduction of OS


Benefits of developing with ''abc'' on Fedora
Benefits of developing with ''abc'' on Fedora
-packages
* packages
-yum
* yum
-stable of tools and environment
* stable of tools and environment
-virtualization and collaboration capabilities?
* virtualization and collaboration capabilities?


Getting started
Getting started
-set up and commands
* set up and commands
-screen shots?
* screen shots?


Use case or cool thing being done with this language on Fedora/with Fedora?
Use case or cool thing being done with this language on Fedora/with Fedora?
-screen shots?
* screen shots?


Migration tips from other systems?
Migration tips from other systems?


Links to more information  
Links to more information  
-QR code
* QR code
-SIG(s)
* SIG(s)


== Java ==
== Java ==
Line 35: Line 35:
=== About Fedora OS ===
=== About Fedora OS ===


'''Fedora is''' a secure, stable, and powerful Linux-based operating system that provides the latest free and open source software within a flexible/customizable?/manageable? environment for developers
'''Fedora is''' a secure, stable, and powerful Linux-based operating system that provides the latest free and open source software within a -> flexible/customizable?/manageable? <- environment for developers


The Fedora distribution strives to:
The Fedora distribution strives to:


Be on the leading edge of free and open source technology, by adopting and helping to develop new features and version upgrades.
* Be on the leading edge of free and open source technology, by adopting and helping to develop new features and version upgrades.
* Establish and implement technical standards for packages, ensuring the quality and consistency of the operating system.
* Promote rapid adoption of new releases by allowing for easy upgrades, with minimal disturbances to configuration changes. <- comments about the validity of this statement


Establish and implement technical standards for packages, ensuring the quality and consistency of the operating system.
The Fedora Project promises to: -> section hasn't been edited beyond initial slap and dash <-


Promote rapid adoption of new releases by allowing for easy upgrades, with minimal disturbances to configuration changes.
* always be free for everyone, everywhere, to use, modify and distribute.
* collaboration is commonplace
* people control their content and devices.


The Fedora Project promises to:
=== Why use Fedora for Java development? ===


always be free for everyone, everywhere, to use, modify and distribute.
Fedora is a great Java development platform because many of the tools Java developers already know and need are available right out of the box in Fedora, such as Java (OpenJDK 7) and the major JVM languages including Groovy, Scala, Clojure, JRuby, and JavaScript.
collaboration is commonplace
people control their content and devices.


=== Why use Fedora for Java development? ===
List very specific benefits pertaining to Java development


Fedora is a great Java development platform because many of the tools Java developers already know and need are available right out of the box in Fedora, such as Java (OpenJDK 7) and the major JVM languages including Groovy, Scala,  JRuby, and JavaScript.
-> crickets <-


List very specific benefits pertaining to Java development
'''and/or'''


List attributes of a Fedora managed software development system
List attributes of a Fedora managed software development system
-> crickets <-


=== Setting up your Java development environment in Fedora ===
=== Setting up your Java development environment in Fedora ===


'''How do I yum?'''
'''How do I yum?'''
Open a terminal and type yum install name-of-package.


What's a package?
Open a terminal and type <code> yum install name-of-package </code>.
A package consists of the metadata and compiled code for a library, collection, service, or application which the Fedora operating system can query, install, upgrade and remove, typically via a package management system.
 
{|
|-
| What's a package? || A package consists of the metadata and compiled code for a library, collection, service, or application which the Fedora operating system can query, install, upgrade and remove, typically via a package management system.
|}


'''Why use a package versus downloading?'''
'''Why use a package versus downloading?'''


Benefits and features of packages
Benefits and features of packages -> Isn't this the same thing as mystery content under Why use Fedora for Java development? <-
Steps to setting up a basic development environment
 
Commands for setting up a basic development environment.
'''Steps and commands to set up a basic development environment'''


<code>
<code>
yum install vim-enhanced (or emacs)
yum install vim-enhanced (or emacs)
maybe syntastic-java (new in F18)
maybe syntastic-java (new in F18)
yum install java-1.7.0-openjdk-devel (shorthand: java-devel)
yum install java-1.7.0-openjdk-devel (shorthand: java-devel)
maybe groovy
maybe groovy
yum install maven (or ant or gradle)
yum install maven (or ant or gradle)
yum install git (or subversion)
yum install git (or subversion)
maybe gitg and/or emacs-git
maybe gitg and/or emacs-git
yum install eclipse-jdt (jdt stands for Java Development Tools)
yum install eclipse-jdt (jdt stands for Java Development Tools)
yum install eclipse-egit (or eclipse-subclipse)
yum install eclipse-egit (or eclipse-subclipse)
maybe eclipse-findbugs, eclipse-eclemma and/or jacoco
maybe eclipse-findbugs, eclipse-eclemma and/or jacoco
yum install tomcat-admin-webapps (or jboss-as)
yum install tomcat-admin-webapps (or jboss-as)
yum install mysql-server (or mongodb-server or postgresql-server)
yum install mysql-server (or mongodb-server or postgresql-server)
yum install rubygem-rhc (to deploy to OpenShift Online)
yum install rubygem-rhc (to deploy to OpenShift Online)
</code>
</code>
Line 101: Line 120:
Ex. with Java
Ex. with Java
Ex. with Clojure
Ex. with Clojure
I'd then git clone a repository or start a new one using mvn archetype:generate or Eclipse. Then I'd build it with Maven, Ant or Eclipse. I'd then start Tomcat or JBoss AS and deploy the application. Deploying may require the prerequisite step of starting, configuring and populating the database.
 
I'd git clone a repository or start a new one using mvn archetype:generate or Eclipse. Then I'd build it with Maven, Ant or Eclipse. I'd then start Tomcat or JBoss AS and deploy the application. Deploying may require the prerequisite step of starting, configuring and populating the database.


If I wanted to get into other languages, I might install the language & it's corresponding build tool. For example, clojure & leiningen (or lancet)
If I wanted to get into other languages, I might install the language & it's corresponding build tool. For example, clojure & leiningen (or lancet)


Tip: One thing developers complain about is that building a project for the first time leads to Maven "downloading the internet". While this is part of how Maven works, it can be alleviated (in part) by running mvn-local. This script will first attempt to resolve the library from the system (shared libraries) before reaching out to the internet.  ''(Another solution would be using a local artifact manager like Nexus or Artifactory, but alas, that software is not available in Fedora).''
'''Tip:''' One thing developers complain about is that building a project for the first time leads to Maven "downloading the internet". While this is part of how Maven works, it can be alleviated (in part) by running mvn-local. This script will first attempt to resolve the library from the system (shared libraries) before reaching out to the internet.  ''(Another solution would be using a local artifact manager like Nexus or Artifactory, but alas, that software is not available in Fedora).''


=== Alternate and Application Development Related Packages ===
=== Alternate and Application Development Related Packages ===
Line 141: Line 161:
'''Virtualization and cloud'''
'''Virtualization and cloud'''


Not available in Fedora
* ''Whay aren't there any Continuous integration servers or Artifact repositories available in Fedora?''
Continuous integration servers
Artifact repositories


=== What's next ===
=== What's next ===

Revision as of 19:58, 24 January 2013

This is where the initial drafts of some marketing materials are developed.

Like. Very. Fine. Wine.

Once they're ripped from my perfectionist claws...

Development Brochure Anatomy

Developing with (language, framework, environment of your choice) on Fedora

Fedora

  • 1 to 2 sentence introduction of OS

Benefits of developing with abc on Fedora

  • packages
  • yum
  • stable of tools and environment
  • virtualization and collaboration capabilities?

Getting started

  • set up and commands
  • screen shots?

Use case or cool thing being done with this language on Fedora/with Fedora?

  • screen shots?

Migration tips from other systems?

Links to more information

  • QR code
  • SIG(s)

Java

About Fedora OS

Fedora is a secure, stable, and powerful Linux-based operating system that provides the latest free and open source software within a -> flexible/customizable?/manageable? <- environment for developers

The Fedora distribution strives to:

  • Be on the leading edge of free and open source technology, by adopting and helping to develop new features and version upgrades.
  • Establish and implement technical standards for packages, ensuring the quality and consistency of the operating system.
  • Promote rapid adoption of new releases by allowing for easy upgrades, with minimal disturbances to configuration changes. <- comments about the validity of this statement

The Fedora Project promises to: -> section hasn't been edited beyond initial slap and dash <-

  • always be free for everyone, everywhere, to use, modify and distribute.
  • collaboration is commonplace
  • people control their content and devices.

Why use Fedora for Java development?

Fedora is a great Java development platform because many of the tools Java developers already know and need are available right out of the box in Fedora, such as Java (OpenJDK 7) and the major JVM languages including Groovy, Scala, Clojure, JRuby, and JavaScript.

List very specific benefits pertaining to Java development

-> crickets <-

and/or

List attributes of a Fedora managed software development system

-> crickets <-

Setting up your Java development environment in Fedora

How do I yum?

Open a terminal and type yum install name-of-package .

What's a package? A package consists of the metadata and compiled code for a library, collection, service, or application which the Fedora operating system can query, install, upgrade and remove, typically via a package management system.

Why use a package versus downloading?

Benefits and features of packages -> Isn't this the same thing as mystery content under Why use Fedora for Java development? <-

Steps and commands to set up a basic development environment

yum install vim-enhanced (or emacs)

maybe syntastic-java (new in F18)

yum install java-1.7.0-openjdk-devel (shorthand: java-devel)

maybe groovy

yum install maven (or ant or gradle)

yum install git (or subversion)

maybe gitg and/or emacs-git

yum install eclipse-jdt (jdt stands for Java Development Tools)

yum install eclipse-egit (or eclipse-subclipse)

maybe eclipse-findbugs, eclipse-eclemma and/or jacoco

yum install tomcat-admin-webapps (or jboss-as)

yum install mysql-server (or mongodb-server or postgresql-server)

yum install rubygem-rhc (to deploy to OpenShift Online)

Starting a new Java project

Using the REPL Using the compiler requirements what to use how to save how to execute Build tools IDE support Ex. with Java Ex. with Clojure

I'd git clone a repository or start a new one using mvn archetype:generate or Eclipse. Then I'd build it with Maven, Ant or Eclipse. I'd then start Tomcat or JBoss AS and deploy the application. Deploying may require the prerequisite step of starting, configuring and populating the database.

If I wanted to get into other languages, I might install the language & it's corresponding build tool. For example, clojure & leiningen (or lancet)

Tip: One thing developers complain about is that building a project for the first time leads to Maven "downloading the internet". While this is part of how Maven works, it can be alleviated (in part) by running mvn-local. This script will first attempt to resolve the library from the system (shared libraries) before reaching out to the internet. (Another solution would be using a local artifact manager like Nexus or Artifactory, but alas, that software is not available in Fedora).

Alternate and Application Development Related Packages

Language and platform

Package Description yum install command
Java 1.7.0 OpenJDK OpenJDK Runtime Environment ava-1.7.0-openjdk-devel (shorthand: java-devel)
  • less.js is pending but not built in rawhide yet

Application runtimes (application servers, servlet containers, etc)

Development tools (IDEs, editors, debuggers, REPLs, application generators)

  • The lack of Spring Roo or JBoss Forge in Fedora is problematic

Build tools (compile and package the code)

Databases and drivers (connectors)

Code quality and coverage tools

  • Why wasn't Spock .6, a testing and specification framework for Java and Groovy applications, included in this list?

Source control systems

Documentation tools

Monitoring and instrumentation

Virtualization and cloud

  • Whay aren't there any Continuous integration servers or Artifact repositories available in Fedora?

What's next

Questions Mailing list Chat

References Fedora Project Java SIG Fedora Packages search: https://apps.fedoraproject.org/packages/