/** Convenience method to close all sessions. */ public static void closeAllSessions() { LOG.info("closing all instances"); final IsisContext instance = getInstance(); if (instance != null) { instance.closeAllSessionsInstance(); } }
private void ensureInTransaction() { if (transactionMode == TransactionMode.UNCHAINED) { ensureThatContext(IsisContext.inTransaction(), is(true)); ensureInHibernateTransaction(); } else { ensureInSession(); if (IsisContext.inTransaction()) { ensureInHibernateTransaction(); } else { getTransactionManager().startTransaction(); } } }
@Override public String parseAndValidate( final ScalarModel scalarModel, final String proposedPojoAsStr) { final OneToOneAssociation property = scalarModel.getPropertyMemento().getProperty(); ParseableFacet parseableFacet = property.getFacet(ParseableFacet.class); if (parseableFacet == null) { parseableFacet = property.getSpecification().getFacet(ParseableFacet.class); } try { final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK); final ObjectAdapter currentValue = property.get(parentAdapter); Localization localization = IsisContext.getLocalization(); final ObjectAdapter proposedAdapter = parseableFacet.parseTextEntry(currentValue, proposedPojoAsStr, localization); final Consent valid = property.isAssociationValid(parentAdapter, proposedAdapter); return valid.isAllowed() ? null : valid.getReason(); } catch (final ConcurrencyException ex) { // disregard concurrency exceptions because will pick up at the IFormValidator level // rather // than each individual property. return null; } catch (final Exception ex) { return ex.getLocalizedMessage(); } }
protected void init( final RepresentationType representationType, final Where where, final String urlUnencodedQueryString) { if (!IsisContext.inSession()) { throw RestfulObjectsApplicationException.create(HttpStatusCode.UNAUTHORIZED); } if (getAuthenticationSession() == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.UNAUTHORIZED); } this.resourceContext = new ResourceContext( representationType, httpHeaders, providers, uriInfo, request, where, urlUnencodedQueryString, httpServletRequest, httpServletResponse, securityContext, getDeploymentType(), getConfiguration(), getServicesInjector(), getSpecificationLoader(), getAuthenticationSession(), getLocalization(), getPersistenceSession(), InteractionInitiatedBy.USER); }
@Override protected void installFixturesIfRequired() throws IsisSystemException { fixtureInstaller = obtainFixturesInstaller(); if (isNoop(fixtureInstaller)) { return; } IsisContext.openSession(new InitialisationSession()); fixtureInstaller.installFixtures(); try { // only allow logon fixtures if not in production mode. if (!getDeploymentType().isProduction()) { logonFixture = fixtureInstaller.getLogonFixture(); } } finally { IsisContext.closeSession(); } }
private void changeObject( final RequestContext context, final ObjectAdapter object, final FormState editState, final List<ObjectAssociation> fields) { for (int i = 0; i < fields.size(); i++) { final FieldEditState field = editState.getField(fields.get(i).getId()); if (field == null) { continue; } final String newEntry = field.getEntry(); final ObjectAdapter originalValue = fields.get(i).get(object); final boolean isVisible = fields .get(i) .isVisible(IsisContext.getAuthenticationSession(), object, where) .isAllowed(); final boolean isUsable = fields.get(i).isUsable(IsisContext.getAuthenticationSession(), object, where).isAllowed(); final boolean bothEmpty = originalValue == null && newEntry.equals(""); final boolean bothSame = newEntry.equals(originalValue == null ? "" : originalValue.titleString()); if ((!isVisible || !isUsable) || bothEmpty || bothSame) { if (fields.get(i).getSpecification().getFacet(ParseableFacet.class) == null) { // REVIEW restores object to loader context.getMappedObject(newEntry); } continue; } if (fields.get(i).getSpecification().containsFacet(ParseableFacet.class)) { final ParseableFacet facet = fields.get(i).getSpecification().getFacet(ParseableFacet.class); Localization localization = IsisContext.getLocalization(); final ObjectAdapter newValue = facet.parseTextEntry(originalValue, newEntry, localization); ((OneToOneAssociation) fields.get(i)).set(object, newValue); } else { ((OneToOneAssociation) fields.get(i)).set(object, field.getValue()); } } }
public void setObjectAsString(final String enteredText) { // parse text to get adapter final ParseableFacet parseableFacet = getTypeOfSpecification().getFacet(ParseableFacet.class); if (parseableFacet == null) { throw new RuntimeException( "unable to parse string for " + getTypeOfSpecification().getFullIdentifier()); } Localization localization = IsisContext.getLocalization(); final ObjectAdapter adapter = parseableFacet.parseTextEntry(getObject(), enteredText, localization); setObject(adapter); }
@Before public void setUp() throws Exception { org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF); configuration = new IsisConfigurationDefault(); servicesList = Collections.emptyList(); oidMarshaller = new OidMarshaller(); context.checking( new Expectations() { { ignoring(mockSpecificationLoader); ignoring(mockPersistenceSessionFactory); one(mockUserProfileLoader).getProfile(with(any(AuthenticationSession.class))); will(returnValue(new UserProfile())); ignoring(mockTemplateImageLoader); ignoring(mockAuthenticationManager); ignoring(mockAuthorizationManager); } }); final ViewFactory subviewSpec = new ViewFactory() { @Override public View createView(final Content content, final Axes axes, final int fieldNumber) { return new DummyView(); } }; final IsisSessionFactoryDefault sessionFactory = new IsisSessionFactoryDefault( DeploymentType.EXPLORATION, configuration, mockTemplateImageLoader, mockSpecificationLoader, mockAuthenticationManager, mockAuthorizationManager, mockUserProfileLoader, mockPersistenceSessionFactory, servicesList, oidMarshaller); IsisContext.setConfiguration(sessionFactory.getConfiguration()); IsisContextStatic.createRelaxedInstance(sessionFactory); IsisContextStatic.openSession(new ExplorationSession()); builder = new ActionFieldBuilder(subviewSpec); }
@Override public ApplicationAdvice appliesTo(IModel<?> model) { if (!(model instanceof EntityCollectionModel)) { return ApplicationAdvice.DOES_NOT_APPLY; } EntityCollectionModel entityCollectionModel = (EntityCollectionModel) model; if (entityCollectionModel.hasSelectionHandler()) { return ApplicationAdvice.DOES_NOT_APPLY; } ObjectSpecification typeOfSpec = entityCollectionModel.getTypeOfSpecification(); ObjectSpecification pieChartableSpec = IsisContext.getSpecificationLoader().loadSpecification(PieChartable.class); return appliesIf(typeOfSpec.isOfType(pieChartableSpec)); }
public PolymorphicForeignKeyInChildCollectionBaseMapper( final ObjectAssociation objectAssociation, final String parameterBase, final FieldMappingLookup lookup, final ObjectMappingLookup objectMapperLookup, final AbstractAutoMapper abstractAutoMapper, final ObjectAssociation field) { super(objectAssociation, parameterBase, lookup, objectMapperLookup, abstractAutoMapper, field); classColumnName = Sql.identifier(Sql.sqlName(getForeignKeyName() + "_cls")); itemIdColumnName = Sql.identifier("item_id"); polyIdMapper = new JdbcPolymorphicObjectReferenceMapping(itemIdColumnName); oidGenerator = IsisContext.getPersistenceSession().getOidGenerator(); }
@Override protected void loadCollectionIntoList( final DatabaseConnector connector, final ObjectAdapter parent, final String table, final ObjectSpecification specification, final IdMappingAbstract idMappingAbstract, final Map<ObjectAssociation, FieldMapping> fieldMappingByField, final VersionMapping versionMapping, final List<ObjectAdapter> list) { LOG.debug("Loading polymorphic list"); final StringBuffer sql = new StringBuffer(); sql.append("select "); super.getIdMapping().appendColumnNames(sql); sql.append("," + getForeignKeyName()); sql.append("," + classColumnName); sql.append("," + itemIdColumnName); sql.append(" from "); sql.append(table); sql.append(" where "); appendCollectionWhereValues(connector, parent, sql); final Results rs = connector.select(sql.toString()); final SpecificationLoaderSpi reflector = IsisContext.getSpecificationLoader(); final JdbcPolymorphicObjectReferenceMapping idMapping = (JdbcPolymorphicObjectReferenceMapping) idMappingAbstract; while (rs.next()) { final ObjectSpecification itemSpecification = reflector.loadSpecification(rs.getString(classColumnName)); idMapping.setObjectSpecification(itemSpecification); // Load new recordSet for the actual class final ObjectMapping itemMapper = objectMappingLookup.getMapping(itemSpecification, connector); final TypedOid oid = idMapping.recreateOid(rs, itemSpecification); final ObjectAdapter loadedObject = itemMapper.getObject(connector, oid); LOG.debug(" element " + loadedObject.getOid()); list.add(loadedObject); } rs.close(); }
@Override public String parseAndValidate( final ScalarModel scalarModel, final String proposedPojoAsStr) { final ObjectActionParameter parameter = scalarModel.getParameterMemento().getActionParameter(); ParseableFacet parseableFacet = parameter.getFacet(ParseableFacet.class); if (parseableFacet == null) { parseableFacet = parameter.getSpecification().getFacet(ParseableFacet.class); } try { final ObjectAdapter parentAdapter = scalarModel.parentObjectAdapterMemento.getObjectAdapter(ConcurrencyChecking.CHECK); Localization localization = IsisContext.getLocalization(); final String invalidReasonIfAny = parameter.isValid(parentAdapter, proposedPojoAsStr, localization); return invalidReasonIfAny; } catch (final Exception ex) { return ex.getLocalizedMessage(); } }
/** Lazily creates an {@link AuthenticationManager} that will authenticate all requests. */ private AuthenticationManager anonymousAuthenticationManager() { if (authenticationManager == null) { final IsisConfiguration configuration = IsisContext.getConfiguration(); final AuthenticationManagerStandard authenticationManager = new AuthenticationManagerStandard(configuration); authenticationManager.addAuthenticator( new AuthenticatorAbstract(configuration) { @Override public boolean isValid(final AuthenticationRequest request) { return true; } @Override public boolean canAuthenticate( final Class<? extends AuthenticationRequest> authenticationRequestClass) { return true; } }); authenticationManager.init(); this.authenticationManager = authenticationManager; } return authenticationManager; }
protected SpecificationLoaderSpi getSpecificationLoader() { return IsisContext.getSpecificationLoader(); }
protected AuthenticationManager getAuthenticationManager() { return IsisContext.getAuthenticationManager(); }
protected AuthenticationSession getAuthenticationSession() { return IsisContext.getAuthenticationSession(); }
protected ServicesInjector getServicesInjector() { return IsisContext.getSessionFactory().getServicesInjector(); }
protected IsisConfiguration getConfiguration() { return IsisContext.getConfiguration(); }
protected IsisSessionFactory getIsisSessionFactory() { return IsisContext.getSessionFactory(); }
protected OidMarshaller getOidMarshaller() { return IsisContext.getOidMarshaller(); }
protected List<ObjectAdapter> getServiceAdapters() { return IsisContext.getPersistenceSession().getServices(); }
public AdapterManager getAdapterManager() { return IsisContext.getPersistenceSession().getAdapterManager(); }
@Override public Persistor getPersistenceSession() { return IsisContext.getPersistenceSession(); }
protected ServicesInjector getServicesInjector() { return IsisContext.getPersistenceSession().getServicesInjector(); }
protected PersistenceSession getPersistenceSession() { return IsisContext.getPersistenceSession(); }
private static PersistenceSession getPersistenceSession() { return IsisContext.getPersistenceSession(); }
protected Localization getLocalization() { return IsisContext.getLocalization(); }
protected DeploymentType getDeploymentType() { return IsisContext.getDeploymentType(); }
public IsisContext getIsisContext() { return IsisContext.getInstance(); }
@Override public AuthenticationSession getAuthenticationSession() { return IsisContext.getAuthenticationSession(); }