/** * This service is being activated so setup it: * <ul> * <li>Create and open the {@link MetadataDependencyRegistryTracker}</li> * <li>Registers {@link RooJavaType#ROO_JAVA_BEAN} as additional JavaType * that will trigger metadata registration.</li> * </ul> */ @Override protected void activate(final ComponentContext cContext) { super.activate(cContext); BundleContext localContext = cContext.getBundleContext(); this.registryTracker = new MetadataDependencyRegistryTracker(localContext, this, PhysicalTypeIdentifier.getMetadataIdentiferType(), getProvidesType()); this.registryTracker.open(); addMetadataTrigger(ROO_JAVA_BEAN); }
@Override protected void notifyForGenericListener(final String upstreamDependency) { if (projectOperations == null) { projectOperations = getProjectOperations(); } Validate.notNull(projectOperations, "ProjectOperations is required"); // If the upstream dependency is null or invalid do not continue if (StringUtils.isBlank(upstreamDependency) || !MetadataIdentificationUtils.isValid(upstreamDependency)) { return; } // If the upstream dependency isn't ProjectMetadata do not continue if (!ProjectMetadata.isValid(upstreamDependency)) { return; } // If the project isn't valid do not continue if (projectOperations.isProjectAvailable(ProjectMetadata.getModuleName(upstreamDependency))) { final boolean isGaeEnabled = projectOperations.isFeatureInstalled(FeatureNames.GAE); // We need to determine if the persistence state has changed, we do // this by comparing the last known state to the current state final boolean hasGaeStateChanged = wasGaeEnabled == null || isGaeEnabled != wasGaeEnabled; if (hasGaeStateChanged) { wasGaeEnabled = isGaeEnabled; for (final String producedMid : producedMids) { getMetadataService().evictAndGet(producedMid); } } } }
private ToStringMetadataProvider getToStringMetadataProvider() { return getServiceManager().getServiceInstance(this, ToStringMetadataProvider.class); } }
/** * This service is being deactivated so unregister upstream-downstream * dependencies, triggers, matchers and listeners. * * @param context */ protected void deactivate(final ComponentContext context) { MetadataDependencyRegistry registry = this.registryTracker.getService(); registry.removeNotificationListener(this); registry.deregisterDependency(PhysicalTypeIdentifier.getMetadataIdentiferType(), getProvidesType()); this.registryTracker.close(); removeMetadataTrigger(ROO_JAVA_BEAN); }
for (final FieldMetadata field : currentClassDetails.getDeclaredFields()) { declaredFields.put(field, getIdentifierAccessorMethodName(field, metadataIdentificationString)); declaredFieldsList.add(field); for (JavaType currentInterface : interfaces) { ClassOrInterfaceTypeDetails currentInterfaceDetails = getTypeLocationService().getTypeDetails(currentInterface); if (currentInterfaceDetails != null) { interfaceMethods = currentInterfaceDetails.getDeclaredMethods(); FieldMetadata identifier = null; if (equalsAnnotationValues.isAnnotationFound()) { EqualsMetadataProvider equalsProvider = getEqualsMetadataProvider(); equalsFields = equalsProvider.locateFields(target, equalsAnnotationValues.getExcludeFields(), List<FieldMetadata> toStringFields = null; if (toStringAnnotationValues.isAnnotationFound()) { ToStringMetadataProvider toStringProvider = getToStringMetadataProvider(); toStringFields = toStringProvider.getToStringFields(governorPhysicalTypeMetadata, declaredFieldsList); getMemberDetailsScanner(), equalsAnnotationValues, equalsFields, identifier, toStringAnnotationValues, toStringFields);
projectOperations = getProjectOperations(); getPersistenceMemberLocator().getIdentifierAccessor(fieldType); if (identifierAccessor != null) { getMetadataDependencyRegistry().registerDependency( identifierAccessor.getDeclaredByMetadataId(), metadataIdentificationString); return identifierAccessor.getMethodName();
for (final FieldMetadata field : currentClassDetails.getDeclaredFields()) { declaredFields.put(field, getIdentifierAccessorMethodName(field, metadataIdentificationString)); declaredFieldsList.add(field); for (JavaType currentInterface : interfaces) { ClassOrInterfaceTypeDetails currentInterfaceDetails = getTypeLocationService().getTypeDetails(currentInterface); if (currentInterfaceDetails != null) { interfaceMethods = currentInterfaceDetails.getDeclaredMethods(); FieldMetadata identifier = null; if (equalsAnnotationValues.isAnnotationFound()) { EqualsMetadataProvider equalsProvider = getEqualsMetadataProvider(); equalsFields = equalsProvider.locateFields(target, equalsAnnotationValues.getExcludeFields(), List<FieldMetadata> toStringFields = null; if (toStringAnnotationValues.isAnnotationFound()) { ToStringMetadataProvider toStringProvider = getToStringMetadataProvider(); toStringFields = toStringProvider.getToStringFields(governorPhysicalTypeMetadata, declaredFieldsList); getMemberDetailsScanner(), equalsAnnotationValues, equalsFields, identifier, toStringAnnotationValues, toStringFields);
projectOperations = getProjectOperations(); getPersistenceMemberLocator().getIdentifierAccessor(fieldType); if (identifierAccessor != null) { getMetadataDependencyRegistry().registerDependency( identifierAccessor.getDeclaredByMetadataId(), metadataIdentificationString); return identifierAccessor.getMethodName();
/** * This service is being deactivated so unregister upstream-downstream * dependencies, triggers, matchers and listeners. * * @param context */ protected void deactivate(final ComponentContext context) { MetadataDependencyRegistry registry = this.registryTracker.getService(); registry.removeNotificationListener(this); registry.deregisterDependency(PhysicalTypeIdentifier.getMetadataIdentiferType(), getProvidesType()); this.registryTracker.close(); removeMetadataTrigger(ROO_JAVA_BEAN); }
/** * This service is being activated so setup it: * <ul> * <li>Create and open the {@link MetadataDependencyRegistryTracker}</li> * <li>Registers {@link RooJavaType#ROO_JAVA_BEAN} as additional JavaType * that will trigger metadata registration.</li> * </ul> */ @Override protected void activate(final ComponentContext cContext) { super.activate(cContext); BundleContext localContext = cContext.getBundleContext(); this.registryTracker = new MetadataDependencyRegistryTracker(localContext, this, PhysicalTypeIdentifier.getMetadataIdentiferType(), getProvidesType()); this.registryTracker.open(); addMetadataTrigger(ROO_JAVA_BEAN); }
@Override protected void notifyForGenericListener(final String upstreamDependency) { if (projectOperations == null) { projectOperations = getProjectOperations(); } Validate.notNull(projectOperations, "ProjectOperations is required"); // If the upstream dependency is null or invalid do not continue if (StringUtils.isBlank(upstreamDependency) || !MetadataIdentificationUtils.isValid(upstreamDependency)) { return; } // If the upstream dependency isn't ProjectMetadata do not continue if (!ProjectMetadata.isValid(upstreamDependency)) { return; } // If the project isn't valid do not continue if (projectOperations.isProjectAvailable(ProjectMetadata.getModuleName(upstreamDependency))) { final boolean isGaeEnabled = projectOperations.isFeatureInstalled(FeatureNames.GAE); // We need to determine if the persistence state has changed, we do // this by comparing the last known state to the current state final boolean hasGaeStateChanged = wasGaeEnabled == null || isGaeEnabled != wasGaeEnabled; if (hasGaeStateChanged) { wasGaeEnabled = isGaeEnabled; for (final String producedMid : producedMids) { getMetadataService().evictAndGet(producedMid); } } } }
public ProjectOperations getProjectOperations() { return getServiceManager().getServiceInstance(this, ProjectOperations.class); }
private EqualsMetadataProvider getEqualsMetadataProvider() { return getServiceManager().getServiceInstance(this, EqualsMetadataProvider.class); }
private ToStringMetadataProvider getToStringMetadataProvider() { return getServiceManager().getServiceInstance(this, ToStringMetadataProvider.class); } }
private EqualsMetadataProvider getEqualsMetadataProvider() { return getServiceManager().getServiceInstance(this, EqualsMetadataProvider.class); }
public ProjectOperations getProjectOperations() { return getServiceManager().getServiceInstance(this, ProjectOperations.class); }