Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to implement a DateTime Custom Field Type?

Julia Janky August 9, 2023

Hello,

I'm trying to implement a plugin with a custom field type for DateTime. But I always get an error message that the module is broken. 

 

My code:

DateTimeField.java
import com.atlassian.jira.config.properties.ApplicationProperties;
import com.atlassian.jira.datetime.DateTimeFormatterFactory;
import com.atlassian.jira.issue.customfields.impl.DateTimeCFType;
import com.atlassian.jira.issue.customfields.impl.FieldValidationException;
import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;
import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;
import com.atlassian.jira.issue.history.DateTimeFieldChangeLogHelper;
import com.atlassian.jira.security.JiraAuthenticationContext;
import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
import com.atlassian.plugin.spring.scanner.annotation.imports.JiraImport;

@Scanned
public class DateTimeField extends DateTimeCFType {
public DateTimeField(
@JiraImport CustomFieldValuePersister customFieldValuePersister,
@JiraImport GenericConfigManager genericConfigManager,
@JiraImport DateTimeFormatterFactory dateTimeFormatterFactory,
@JiraImport JiraAuthenticationContext jiraAuthenticationContext,
@JiraImport ApplicationProperties applicationProperties,
@JiraImport DateTimeFieldChangeLogHelper dateTimeFieldChangeLogHelper) {
super(customFieldValuePersister, genericConfigManager, dateTimeFormatterFactory, jiraAuthenticationContext, applicationProperties, dateTimeFieldChangeLogHelper);
}
}

atlassian-plugin.xml

<customfield-type name="DateTimeField" i18n-name-key="DateTimeField" key="date-time-field" class="com.jira.plugins.fields.DateTimeField">
<description>DateTimeField</description>
        <resource type="velocity" name="view" location="templates/plugins/fields/view/view-datetime.vm"/>
        <resource type="velocity" name="edit" location="templates/plugins/fields/edit/edit-datepicker.vm"/>
        <resource type="velocity" name="xml" location="templates/plugins/fields/xml/xml-datetime.vm"/>
</customfield-type>
I also tried it with my velocity templates but it didn't work either.
Do I miss something?

3 answers

1 accepted

0 votes
Answer accepted
Julia Janky August 15, 2023

I have solved it myself. 

This line 

@JiraImport ApplicationProperties applicationProperties,
has to be changed to this
@JiraImport("jiraApplicationProperties") ApplicationProperties applicationProperties,
Barney Dalton October 31, 2023

What does this do? Just looks like voodoo.

Julia Janky November 2, 2023

Hello Barney Dalton,

this determines that the implementation "JiraApplicationProperties" is to be used.

0 votes
Julia Janky August 9, 2023

The field type is also not selectable when creating a custom field.

0 votes
Nic Brough -Adaptavist-
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 9, 2023

Welcome to the Atlassian Community!

What errors are you seeing in the logs?

Julia Janky August 9, 2023

Hello Nic Brough,

this is what I found in the logs:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.jira.plugins.fields.DateTimeField': Unsatisfied dependency expressed through constructor parameter 4; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.atlassian.jira.config.properties.ApplicationProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@com.atlassian.plugin.spring.scanner.annotation.imports.JiraImport(value="")}
io.atlassian.util.concurrent.LazyReference$InitializationException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.jira.plugins.fields.DateTimeField': Unsatisfied dependency expressed through constructor parameter 4; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.atlassian.jira.config.properties.ApplicationProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@com.atlassian.plugin.spring.scanner.annotation.imports.JiraImport(value="")}

Thanks in advance!

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
SERVER
VERSION
9.7.1
TAGS
AUG Leaders

Atlassian Community Events