How to create custom filed on start of plugin

Thanks @david.pinn it is working now. Below is working code:




@ExportAsService({MyPluginListener.class })
@Named("myPluginListener")
public class MyPluginListener implements InitializingBean, DisposableBean {

	private final static String PLUGIN_KEY = "your.plugin.key";
	private final EventPublisher eventPublisher;
	private final ActiveObjects activeObjects;
	
	
	
	@Inject
	public MyPluginListener(@ComponentImport EventPublisher eventPublisher, ActiveObjects activeObjects ){
		this.eventPublisher=eventPublisher;
		this.activeObjects=activeObjects;
	}
	
	

	@Override
	public void afterPropertiesSet() throws Exception {
		eventPublisher.register(this);
	}

	@Override
	public void destroy() throws Exception {
		eventPublisher.unregister(this);
	}
	
	@EventListener
	public void onPluginStarted(final PluginEnabledEvent pluginEnabledEvent)
	{
	    String startUpPluginKey = pluginEnabledEvent.getPlugin().getKey();
  	    if (PLUGIN_KEY.equals(startUpPluginKey))
	    {
  	    	generateCustomField();
	    }
	}



	private void generateCustomField() {
		List<IssueType> issueTypes = (List<IssueType>) ComponentAccessor.getIssueTypeSchemeManager().getDefaultIssueTypeScheme().getAssociatedIssueTypes();
		List<JiraContextNode> contexts=ComponentAccessor.getIssueTypeSchemeManager().getDefaultIssueTypeScheme().getContexts();
		CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
				
		
		CustomFieldType customFieldType =customFieldManager.getCustomFieldType("com.atlassian.jira.plugin.system.customfieldtypes:textfield");
		CustomFieldSearcher customFieldSearcher = customFieldManager.getCustomFieldSearcher("com.atlassian.jira.plugin.system.customfieldtypes:exacttextsearcher");
		
		System.out.println("-----------------------------customFieldType------------------: "+customFieldType);
		System.out.println("-----------------------------customFieldSearcher------------------: "+customFieldSearcher);
		
		
		try {
			customFieldManager.createCustomField(
					"MyCustom filed Name", "MyCustom filed Name Description", customFieldType,
					customFieldSearcher,
					contexts, issueTypes );
			
	
			
			
		} catch (GenericEntityException e1) {
			e1.printStackTrace();
		}
	}
}