JIRA Development Cookbook - Third Edition
图书信息
| 作者 | Jobin Kuruvilla |
| 出版社 | Packt Publishing |
| ISBN | 9781785886331 |
| 出版时间 | 2016-09-01 |
| 字数 | 424.8万 |
| 分类 | 进口书,外文原版书,电脑,网络 |
读书简介
Your one-stop resource for mastering extensions and customizations in JIRA 7+ About This Book Explore the new features of JIRA 7 and best practices for agile development and integration with development tools Customize the look and feel of your JIRA UI to match your specific user needs Create seamless reports that make sense of your data through easy-to-use techniques Who This Book Is For If you are a JIRA developer or administrator, or a project manager who wants to fully exploit the exciting capabilities of JIRA, then this is the perfect book for you. What You Will Learn Create and deploy your own JIRA plugins Manipulate workflows to transform JIRA into a user-friendly system Create custom reports that show statistics for particular people, projects, versions, or other fields within issues Simplify reporting by writing your own JIRA gadgets, which can be added into a user's dashboard Master database handling by extending and retrieving custom field details from the database Deal with custom fields on an issue and program custom field option In Detail JIRA provides issue and project tracking for software development teams to improve code quality and the speed of development. With the new version of JIRA, you can create your own JIRA plugins and customize the look and feel of your JIRA UI easier than ever. JIRA Development Cookbook , Third Edition, is a one-stop resource to master extensions and customizations in JIRA. This book starts with recipes about simplifying the plugin development process followed by recipes dedicated to the plugin framework. Then, you will move on to writing custom field plugins to create new field types or custom searchers. You will also learn how to program and customize workflows to transform JIRA into a user-friendly system. With so much data spanning different projects, issues, and so on, we will cover how to work on reports and gadgets to get customized data according to our needs. At the end of the book, you will learn how to customize JIRA by adding new tabs, menus, and web items; communicate with JIRA via the REST APIs; and work with the JIRA database. Style and approach The most unique aspect of this book is its approach. This book is recipe-based, with real-world examples, that will empower you to implement agile processes and explore the exciting capabilities of Jira.
目录
JIRA Development Cookbook Third Edition
JIRA Development Cookbook Third Edition
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Sections
Getting ready
How to do it…
How it works…
There's more…
See also
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Plugin Development Process
Introduction
What is a JIRA add-on?
The plugin development process
Atlassian Marketplace
Troubleshooting
Setting up the development environment
Getting ready
How to do it...
There's more...
Proxy settings for Maven
Using local Maven
Configuring IDEs to use the SDK
Troubleshooting
Creating a skeleton plugin
Getting ready
How to do it...
How it works...
There's more...
One step to your skeleton plugin
Creating an Eclipse project
Adding plugin modules
Getting ready
How to do it...
How it works...
Deploying a JIRA plugin
Getting ready
How to do it...
How it works...
There's more...
Using a specific version of JIRA
Reusing the data in each run
Troubleshooting
Making changes and redeploying a plugin
How to do it...
Debugging in Eclipse
See also
Using FastDev for plugin development
Getting ready
How to do it...
How it works...
There's more...
Adding ignored files
Changing admin credentials
See also
Testing and debugging
Getting ready
How to do it...
How it works...
There's more...
Using custom data for integration/functional Tests
Testing against different version of JIRA/Tomcat
See also
2. Understanding the Plugin Framework
Introduction
JIRA architecture
Third-party components
Webwork
Seraph
Embedded Crowd
PropertySet
Active Objects
OSWorkflow
OfBiz Entity Engine
Apache Lucene
Atlassian Gadget JavaScript Framework
Shared Access Layer
Architecture
Authentication and user management
Property management
Presentation
Database
Workflows
Searching
Scheduled jobs
Plugins
Types of plugin modules
Reporting
Workflows
Custom fields
Searching
Links and tabs
Remote invocation
Actions and components
Other plugin modules
What goes into atlassian-plugin.xml?
Working with the Plugins1 and Plugins2 versions
Development
Installation
JIRA system plugins
Stable and core APIs
Modifying Atlassian bundled plugins
How to do it...
How it works...
See also
Converting plugins from V1 to V2
Getting ready
How to do it...
How it works...
See also
Adding resources into plugins
Getting ready
How to do it...
Adding web resources into plugins
How to do it...
How it works...
There's more...
Web resource contexts
Turning off batch mode
Building JIRA from source
Getting ready
How to do it...
How it works...
There's more...
Making a single class patch
See also
Adding new webwork actions to JIRA
Getting ready
How to do it...
How it works...
There's more...
Adding new commands to the action
See also
Form token handling in webwork actions
Getting ready
How to do it...
How it works...
There's more...
Providing a token in HTML links
Getting the token programmatically
Opting out of token checking in remote calls
See also
Capturing plugin installation/uninstallation events
Getting ready
How to do it...
How it works...
See also
3. Working with Custom Fields
Introduction
Writing a simple custom field
Getting ready
How to do it...
How it works...
There's more...
See also
Custom field searchers
Getting ready
How to do it...
How it works...
There's more...
Dealing with custom fields on an issue
Getting ready
How to do it...
How it works...
See also
Programming custom field options
Getting ready
How to do it...
See also
Overriding the validation of custom fields
Getting ready
How to do it...
See also
Customizing the change log value
Getting ready
How to do it...
How it works...
Migrating from one custom field type to another
How to do it...
How it works...
There's more...
Changing the type of a custom field
See also
Making custom fields sortable
Getting ready
How to do it...
How it works...
There's more...
See also
Displaying custom fields on subtask columns
How to do it...
How it works...
User and date fields
How to do it...
How it works...
See also
Adding custom fields to notification e-mails
Getting ready
How to do it...
How it works...
Adding help text for a custom field
Getting ready
How to do it...
How it works...
Removing the "none" option from a select field
How to do it...
There's more...
Reloading velocity changes without restart (auto reloading)
See also
Making the custom field project importable
How to do it...
See also
Changing the size of a text area custom field
How to do it...
See also
4. Programming Workflows
Introduction
Writing a workflow condition
Getting ready
How to do it...
How it works...
See also
Writing a workflow validator
Getting ready
How to do it...
How it works...
See also
Writing a workflow post function
Getting ready
How to do it...
How it works...
See also
Editing an active workflow
How to do it...
How it works...
There's more...
Modifying workflows in a JIRA database
Permissions based on workflow status
How to do it...
How it works...
There's more...
Making an issue editable/non-editable using workflow properties
See also
Including/excluding resolutions for specific transitions
How to do it...
How it works...
See also
Adding workflow triggers
Getting ready
How to do it...
How it works...
There's more...
User mapping from development tools to JIRA
See also
Internationalization in workflow statuses
How to do it...
How it works...
See also
Obtaining available workflow actions programmatically
How to do it...
How it works...
There's more...
Getting the action ID's given name
Programmatically progressing on workflows
How to do it...
How it works...
Obtaining workflow history from the database
Getting ready
How to do it...
How it works...
See also
Reordering workflow actions in JIRA
How to do it...
How it works...
Creating common transitions in workflows
How to do it...
How it works...
Creating global transitions in workflows
How to do it...
How it works...
5. Gadgets and Reporting in JIRA
Introduction
Writing a JIRA report
Getting ready
How to do it...
How it works...
See also
Reports in Excel format
Getting ready
How to do it...
How it works...
See also
Data validation in JIRA reports
Getting ready
How to do it...
How it works...
See also
Restricting access to reports
Getting ready
How to do it...
How it works...
See also
Object configurable parameters for reports
How to do it...
How it works...
See also
Writing JIRA gadgets
Getting ready
How to do it...
How it works...
There's more...
Invoking REST services from gadgets
Getting ready
How to do it...
How it works...
See also
Configuring user preferences in gadgets
Getting ready...
How to do it...
How it works...
There's more...
See also
Accessing gadgets outside of JIRA
Getting ready...
How to do it...
How it works...
See also
6. The Power of JIRA Searching
Introduction
Writing a JQL function
Getting ready
How to do it...
How it works...
See also
Sanitizing JQL functions
Getting ready
How to do it...
How it works...
See also
Adding a search request view
Getting ready
How to do it...
How it works...
There's more...
Using Single Issue Views to render search views
See also
Smart querying using quick search
How to do it...
There's more...
Searching in plugins
How to do it...
There's more...
See also
Parsing a JQL query in plugins
How to do it...
How it works...
See also
Linking directly to search queries
How to do it...
How it works...
There's more...
Index and de-index issues programmatically
How to do it...
See also
Searching on issue entity properties
Getting ready
How to do it...
How it works...
There's more...
See also
Managing filters programmatically
How to do it...
Creating a filter
Updating a filter
Deleting a filter
Retrieving filters
Sharing a filter
See also
Subscribing to a filter
How to do it...
How it works...
There's more...
See also
7. Programming Issues
Introduction
Creating an issue from a plugin
How to do it...
How it works...
There's more...
Creating the issue using IssueManager
See also
Creating subtasks on an issue
How to do it...
See also
Updating an issue
How to do it...
Deleting an issue
How to do it...
Adding new issue operations
Getting ready
How to do it...
How it works...
There's more...
See also
Conditions on issue operations
Getting ready...
How to do it...
How it works...
Working with attachments
Getting ready...
How to do it...
Creating an attachment
Reading attachments on an issue
Deleting an attachment
There's more...
Time tracking and worklog management
Getting ready...
How to do it...
Auto adjusting the remaining estimate
Logging work and retaining the remaining estimate
Logging work with a new remaining estimate
Logging work and adjusting the remaining estimate by a value
How it works...
There's more
Updating worklogs
Deleting worklogs
Auto Adjusting remaining estimate
Deleting a worklog and retaining the remaining estimate
Deleting a worklog with a new remaining estimate
Deleting a worklog and adjusting the remaining estimate
Working with comments on issues
How to do it...
Creating comments on issues
Creating comments on an issue and restricting it to a project role or group
Updating comments
Deleting comments
Programming change logs
How to do it...
How it works...
Programming issue links
Getting ready...
How to do it...
There's more...
Deleting Issue Links
Retrieving Issue Links on an issue
JavaScript tricks on issue fields
How to do it...
How it works...
Creating issues and comments from e-mail
How to do it...
How it works...
8. Customizing the UI
Introduction
Changing the basic look and feel
How to do it...
Adding new web sections in the UI
How to do it...
How it works...
See also
Adding new web items in the UI
How to do it...
How it works...
See also
Use of decorators and other metadata tags
Getting ready
How to do it...
How it works...
See also
Adding conditions for web fragments
How to do it...
How it works...
Creating new velocity context for web fragments
How to do it...
How it works...
Adding a new drop-down menu on the top navigation bar
How to do it...
How it works...
Dynamic creation of web items
Getting ready
How to do it...
How it works...
Adding new tabs in the View Issue screen
Getting ready
How to do it…
How it works...
There's more...
Loading issue tab panel asynchronously
Adding new tabs in the Browse Project screen
Getting ready
How to do it...
How it works...
Adding new links in the Project-centric view
Getting ready
How to do it...
How it works...
See also
Adding new panels in the project-centric view
Getting ready
How to do it...
How it works...
Adding sub-navigation in Project-centric view
Getting ready
How to do it...
How it works...
Adding issue link renderers
Getting ready
How to do it...
How it works...
See also
Displaying dynamic notifications/warnings on issues
Getting ready
How to do it...
There's more...
Re-ordering Issue Operations in the View Issue page
How to do it...
How it works...
See also
Re-ordering fields in the View Issue page
How to do it...
See also
9. Remote Access to JIRA
Introduction
Writing Java client for REST API
Getting ready
How to do it...
Working with issues
Getting ready
How to do it...
Creating Issues
Updating issues
Browsing issues
Working with attachments
Getting ready
How to do it...
Using input stream and a new filename
Using the AttachmentInput object
Using file and a new filename
Browsing attachments
Remote time tracking
Getting ready...
How to do it...
Working with comments
Getting ready
How to do it...
Remote user and group management
How to do it...
Creating a User
Updating a User
Adding a User to an application
Removing a User from an application
Deleting a User
Creating a Group
Adding a user to a Group
Getting users in a Group
Removing a user from a Group
Deleting a Group
Progressing an issue in workflow
Getting ready
How to do it...
Searching issues
Getting ready
How to do it...
Managing versions
Getting ready
How to do it...
Managing components
Getting ready
How to do it...
Remote administration methods
How to do it...
Creating a Permission Scheme
Creating a Project
Retrieving the project roles
Add actors to a project role
How it works...
Exposing services and data entities as REST APIs
Getting ready
How to do it...
How it works...
Using the REST API browser
How to do it...
Working with JIRA Webhooks
How to do it...
How it works...
There's more...
10. Dealing with the JIRA Database
Introduction
Extending the JIRA database with a custom schema
How to do it...
How works...
Accessing database entities from plugins
How to do it...
Reading from a database
Writing a new record
Updating a record
Persisting plugin information in the JIRA database
How to do it...
How it works...
Using Active Objects to store data
Getting ready...
How to do it...
How it works...
Accessing the JIRA configuration properties
How to do it...
Getting a database connection for JDBC calls
How to do it...
Migrating a custom field from one type to another
How to do it...
Retrieving issue information from a database
How to do it...
There's more...
Retrieving custom field details from a database
How to do it...
Retrieving permissions on issues from a database
How to do it...
Retrieving workflow details from a database
How to do it...
Updating the issue status in a database
Getting ready
How to do it...
Retrieving users and groups from a database
How to do it...
Dealing with change history in a database
How to do it...
11. Useful Recipes
Introduction
Writing a service in JIRA
Getting ready
How to do it...
How it works...
See also
Adding configurable parameters to a service
How to do it...
How it works...
See also
Writing scheduled tasks in JIRA
How to do it...
How it works...
See also
Writing listeners in JIRA
Getting ready
How to do it...
How it works...
See also
Customizing e-mail content
How to do it...
How it works...
Redirecting to a different page in webwork actions
How to do it...
Adding custom behavior for user details
Getting ready
How to do it...
How it works...
Deploying a servlet in JIRA
Getting ready
How to do it...
How it works...
Adding shared parameters to Servlet Context
Getting ready
How to do it...
How it works...
Writing a Servlet Context Listener
Getting ready
How to do it...
How it works...
Using filters to intercept queries in JIRA
Getting ready
How to do it...
How it works...
Adding and importing components in JIRA
Getting ready
How to do it...
Exposing components to other plugins
Importing public components
How it works...
Adding new module types to JIRA
Getting ready
How to do it...
Creating modules using the new module type
Using the new modules
How it works...
Enabling access logs in JIRA
How to do it...
How it works...
Enabling SQL logging in JIRA
How to do it...
How it works...
Internationalization in webwork plugins
How to do it...
How it works...
Sharing common libraries across v2 plugins
Getting ready
How to do it...
Operations using direct HTML links
How to do it...
Implementing Marketplace licensing in plugins
Getting ready
How to do it...
How it works...
- 花鸟物语(谈正衡)
- 非遗传承:非物质文化遗产保护研究(游珈)
- 孩子学口才的第一本书-修订版(寿长华编)
- 加工贸易实务(陈文培,唐涛等编)
- 计算机基础及office办公软件应用(米保全)
- 5年级全一册-计算题+应用题每日一刻钟-妙趣1+1(支伟力,何铸)
- 牛津通识读本法律(新版)(英国)雷蒙德.瓦克斯牛津通识读本((英国)雷蒙德・瓦克斯)
- 治愈自己:心理自助与自我训练(朱宏颖)
